Eksport Stringgrid ---> Excel

Odpowiedz Nowy wątek
2004-08-13 10:59
Autorek
0

Witam!
Robię bazę na Stringgridzie, a eksport danych z tabeli jest mi potrzebny tylko aby wydrukować pod Excelem. Dlaczego pod Excelem? Ściągłem kod drukujący zawartość Stringrida, ale potem ustawianie parametrów było dla mnie zmorą. Tabela ma 8 kolumn a drukowało mi 3 ostatnie. W ogóle nie wiem jaki parametr do czego służy. I zdecydowałem się na eksport danych do Excela i stamtąd będę drukował.
Mam taki kod eksportujący:

procedure TForm1.SpeedButton1Click(Sender: TObject);

var
 ExcelSheet, ash, Range: Variant;
 i: integer;
begin
 ExcelSheet := CreateOleObject('Excel.Sheet');

 ash := ExcelSheet.ActiveSheet;

 ash.Cells[1, 1] := 'Nr Ewid.';
 ash.Cells[1, 2] := 'Data Rozp.';
 ash.Cells[1, 3] := 'KAT.';
 ash.Cells[1, 4] := 'Imię i Nazwisko';
 ash.Cells[1, 5] := 'Rata I';
 ash.Cells[1, 6] := 'Rata II';
 ash.Cells[1, 7] := 'Rata III';
 ash.Cells[1, 8] := 'Rata IV';

 Range := ash.Range['A1:H1'];
 Range.Font.Bold := True;
 Range.Font.Size := 10;

 for i:= 1 to 8 do
  ash.Columns[i].ColumnWidth := 15;

 ExcelSheet.Application.Visible := False;
 ExcelSheet.SaveAs('bazak1.xls'); //FULL PATH !!!
 ExcelSheet.Application.Quit;
  Shellexecute(Handle,'open','excel.exe',pchar('bazak1.xls'), nil, SW_show);
 ShowMessage('Plik .xls zapisany OK');

 end;

Widzicie powyżej opisy kolumn w Stringgridzie. Jest ich 8. W czym problem polega?
A no właśnie jak teraz przypisać do tego kodu dane z komórek, że jak zapiszę potem baze i otworzę plik w excelu to mi ładnie je pokaże????? Głowię się nad tym klika dni. Przypominam tylko, że moja baza ma te 8 kolumn i 1000 wierszy.

PROSZĘ POMÓŻCIE MI PRZYPISAĆ DANE DO TEGO EKSPORTU

Pozostało 580 znaków

2004-08-13 13:48
0

Mam nadzieję, że wiesz, że jeśli użytkownik nie ma na komputerze zainstalowanego Excela, to dupa zbita...

Pozostało 580 znaków

2004-08-13 15:54
0
var
 .....
  c, r: integer;
begin
.....

  for i:= 1 to 8 do
   ash.Columns[i].ColumnWidth := 15;

  for r := 1 to StringGrid1.RowCount - 1 do
    for c := 1 to StringGrid1.ColCount - 1 do
      ash.Cells[r + 1, c] := StringGrid1.Cells[c, r];

......
end;

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0