bonjour, je voudrais exporter mon dbgrid et son contenu dans un fichier excel, ça se passe plus ou moins bien mais un petit soucis se pose et je pense trouver une solution chez vous voici mon code.
begin
result:=-1;
try
MonClasseur:=ExcelApplication1.Workbooks.Add(xlWBATWorksheet,0);
MaFeuille:=MonClasseur.Worksheets[1] as _worksheet;
except
exit;
end;
try
for i:=0 to Form8.DBGrid1.FieldCount-1 do
MaFeuille.Cells.Item[1,i+1].Value:=Form8.DBGrid1.Fields[i].FieldName;
Form8.Tablecommandes_produits.First;
for j:=2 to Form8.DBGrid1.FieldCount+1 do
begin
for i:=0 to Form8.DBGrid1.FieldCount-1 do
try
if Form8.DBGrid1.Fields[i].IsNull then MaFeuille.Cells.Item[j,i+1].Value:=''
else
if Form8.DBGrid1.Fields[i].DataType in [ftDate,ftDateTime] then
MaFeuille.Cells.Item[j,i+1].Value:=FormatDateTime('dd/mm/yyyy',Form8.DBGrid1.Fields[i].Value)
else MaFeuille.Cells.Item[j,i+1].Value:=Form8.DBGrid1.Fields[i].AsString;
except
ShowMessage('Erreur');
end;
application.ProcessMessages;
Form8.Tablecommandes_produits.Next;
end;
s:='D:\RESULTAT.xls'+#0;
MonClasseur.Close(True,s,emptyparam,0);
le but de ce code est d'arriver à exporter ce que l'on voit dans le dbgrid c.à.d si j'effectue une requete par exemple je reclasse mes donnes par ordre asacendant numerique, je voudrai qu'il enregistre tel quelle, mais non au lieu de ça il n'exporte que la première ligne de du resultat de la requete qu'il repete sur toute la feuille excel, or moi je veus qu'il esporte tout le resultat, pouvez vous m'aidez à trouver ou est ce je comets l'erreure dans mon code
merçi d'avance et desolé pour la bible, mais je voulais etres le plus clair possible.
A voir également:
Delphi export to excel
Dbgrid to excel delphi - Meilleures réponses
Delphi export dataset to excel - Meilleures réponses