1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| implementation
uses ComObj;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
XApp:Variant;
sheet:Variant;
r,c:Integer;
q:Integer;
row,col:Integer;
fildName:Integer;
begin
try
begin
XApp:=CreateOleObject('Excel.Application');
XApp.Visible:=true; // Excel visible
end;
except
showmessage('Impossible d''établir des liens avec MS Excel, il semble que ce n''est pas installé sur ce système.');
exit;
end;
XApp.WorkBooks.Add(-4167); //Ouvrir un nouveau classeur
XApp.WorkBooks[1].WorkSheets[1].Name:='Feuille1';
//donner un nom nécessaire pour ExcelSheet
sheet:=XApp.WorkBooks[1].WorkSheets['Feuille1'];
for fildName:=0 to Form1.DataSource1.DataSet.FieldCount-1 do
//TDataset référer à la toute base de données contenant des données
begin
q:=fildName+1;
sheet.Cells[1,q]:=Form1.DataSource1.DataSet.Fields[fildName].FieldName; // entrer en-têtes de colonnes
end;
//maintenant fournir les données de table en excel
Form1.DataSource1.DataSet.First;
for r:=0 to Form1.DataSource1.DataSet.RecordCount-1 do
begin
for c:=0 to Form1.DataSource1.DataSet.FieldCount-1 do
begin
row:=r+2;
col:=c+1;
sheet.Cells[row,col]:=Form1.DataSource1.DataSet.Fields[c].AsString;
end;
Form1.DataSource1.DataSet.Next;
end;
XApp.WorkSheets['Feuille1'].name := 'Exporté de ' + Form1.DataSource1.DataSet.Name;
close;
end; |
Partager