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
| procedure TMainForm.SaveAsXLS(const FileName: String);
Var
CSV : String ;
_Excel : TExcelApplication ;
begin
_Excel:=Nil;
Try
// C'est un fichier CSV que l'on sauve, tout d'abord...
// Ce sont d'autres méthodes du programme qui sauvent en CSV.
CSV:=ExpandFileName(ChangeFileExt(FileName,feTMP));
Try
SaveAsCSV(CSV) ;
Except
DeleteFile(CSV);
Raise;
End;
// On efface à la main, sinon Excel demande la confirmation.
If FileExists(FileName) Then
DeleteFile(FileName);
// Création du serveur Excel.
_Excel:=TExcelApplication.Create(Nil);
// Ouverture du serveur Excel.
_Excel.Connect;
// Ouverture du .CSV
_Excel.Workbooks.OpenText(CSV,xlWindows,1,xlDelimited,xlTextQualifierDoubleQuote,False,False,True,False,False,False,EmptyParam,EmptyParam,EmptyParam,1036);
// Sauvegarde en .XLS
_Excel.Workbooks.Get_Item(1).SaveAs(ExpandFileName(FileName),OleVariant(xlWorkbookNormal),EmptyParam,EmptyParam,False,False,xlNoChange,xlUserResolution,False,EmptyParam,EmptyParam,1036);
Finally
// Fermeture du serveur Excel.
If Assigned(_Excel) Then
Try
_Excel.Quit;
_Excel.Disconnect;
Finally
FreeAndNil(_Excel);
End;
DeleteFile(CSV);
End;
end; |
Partager