Export data ListView ke Excel (Delphi)
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls,ComObj;
type
TForm2 = class(TForm)
ListView1: TListView;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var
xls, wb, Range: OLEVariant;
arrData: Variant;
jumbaris,jumkolom,i,j:integer;
begin
jumbaris:=ListView1.Items.Count;
jumkolom:=3;
arrData := VarArrayCreate([1,jumbaris+1,1,jumkolom], varVariant);
for i := -1 to jumbaris-1 do
for j := 1 to 3 do
begin
//membaca kolom dari listview ke dalam array
if i=-1 then
arrData[i+2, j]:= ListView1.Column[j-1].Caption
//mengisi nilai caption dan subitems dari listview ke dalam array
else
begin
if j=1 then
arrData[i+2, j] := ListView1.Items.Item[i].Caption
else
arrData[i+2, j] := ListView1.Items.Item[i].SubItems[j-2];
end;
end;
xls := CreateOLEObject('Excel.Application');
wb := xls.Workbooks.Add;
Range := wb.WorkSheets[1].Range[wb.WorkSheets[1].Cells[1, 1],wb.WorkSheets[1].Cells[jumbaris+1,jumkolom]];
Range.Value := arrData;
xls.Visible := True;
end;
end.
penjelasannya ada di bawah ini, biar lebih mudah aja di mengerti !
arrData = varArrayCreate([1,6,1,3],varVarian);
isi kan ke dalam array
array ke [1,x] = membuat text pada baris ke A dalam excel
arrData[1,1]:='No.';
arrData[1,2]:='Nama';
arrData[1,3]:='Umur';
array 2 = baris ke b dalam excel dan seterusnya
arrData[2,1]:='1';
arrData[2,2]:='desy';
arrData[2,3]:='19';
arrData[3,1]:='2';
arrData[3,2]:='tomy';
arrData[3,3]:='22';
dan seterusnya...
arrData = varArrayCreate([1,6,1,3],varVarian);
isi kan ke dalam array
array ke [1,x] = membuat text pada baris ke A dalam excel
arrData[1,1]:='No.';
arrData[1,2]:='Nama';
arrData[1,3]:='Umur';
array 2 = baris ke b dalam excel dan seterusnya
arrData[2,1]:='1';
arrData[2,2]:='desy';
arrData[2,3]:='19';
arrData[3,1]:='2';
arrData[3,2]:='tomy';
arrData[3,3]:='22';
dan seterusnya...
0 Comments