Ik ben opnieuw bezig met het maken van een exportfunctie voor stringgrid gegevens naar excel. Ik vindt met Google wel wat (niet veel). De gevonden code snap ik echter niet. Dus ik ben zelf aan het proberen.
Onderstaande loopt vast met de melding:
//index out of range col=5 row=76
De stringgrid bevat echter precies 5 kolommen en 76 rijen.
Code:
procedure TExport_2_Xls.Safe_2_Xls;
var
R, C, J, i : Integer;
ExcelApp : OleVariant;
Data : Variant;
begin
{ TODO : Progressbar inbouwen zie gbi 4 ctrl app }
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Workbooks.Add;
ExcelApp.Workbooks[1].Worksheets[1].Name := 'test'; //Main_frm.TreeView1.Selected.Text;
R := Main_frm.StringGrid_deel_ctrl.RowCount;
C := Main_frm.StringGrid_deel_ctrl.ColCount;
Data := VarArrayCreate([0,R, 0,C], varvariant);
//kopteksten stringgrid ophalen
for j := 0 to C - 1 do
begin
data[0, j] := Main_frm.StringGrid_deel_ctrl.Cells[j,0];
end;
//de rest van de cellen ophalen --> HIER gaat het fout
for i := 0 to R - 1 do
begin
for j := 0 to C - 1 do
data[i + 1, j] := Main_frm.StringGrid_deel_ctrl.Cells[C,R]; //index out of range col=5 row=76
end;
ExcelApp.Visible := True;
ExcelApp.range ['A1', ExcelApp.cells[R+1, C]].value:=data;
end;
Bookmarks