Docs HotXLS

SaveAs-method

Enregistre les modifications du classeur dans un autre fichier ou flux. Renvoie 1 en cas de succès

Syntaxe

function SaveAs(FileName: WideString): Integer;
function SaveAs(FileName: WideString; FileFormat: TXLSFileFormat): Integer;
function SaveAs(Stream: TStream);
function SaveAs(Stream: TStream; FileFormat: TXLSFileFormat): Integer;
FileName WideString. Une chaîne qui indique le nom du fichier à enregistrer. Vous pouvez inclure un chemin complet ; sinon, Workbook enregistre le fichier dans le dossier courant
FileFormat TXLSFileFormat Facultatif. Une valeur qui indique le format du fichier à enregistrer. La valeur par défaut est xlExcel97
Stream TStream. Saves Workbook to a stream specified in the Stream parameter

Description

La sortie de fichiers XLS termine la sérialisation dans un fichier de mise en scène voisin avant de remplacer la destination ; un commit qui échoue laisse la destination existante intacte et signale l'erreur native capturée via les diagnostics du classeur

Sur les systèmes de fichiers Windows prenant en charge le renommage POSIX, le remplacement peut réussir alors qu'un handle de métadonnées ou de lecture autorisant la suppression reste ouvert ; un lecteur existant continue de voir l'objet fichier d'origine, et un nouveau lecteur du nom de destination voit le remplacement terminé

La destination doit autoriser l'accès en suppression et le partage en suppression, et les cibles en lecture seule sont toujours rejetées ; un commit qui échoue n'est pas retenté, tandis que les cibles manquantes, les chemins reparse et les systèmes de fichiers non pris en charge utilisent le chemin de commit historique sélectionné avant le remplacement

Le remplacement atomique protège la publication d'un fichier terminé ; il ne fournit pas d'isolation compare-and-swap contre un autre processus qui remplacerait concurremment le même nom

FileFormat can be one of these TXLSFileFormat constants
xlExcel97 MS Excel 97,2000,XP,2003 file format
xlExcel5 MS Excel 5,95 file format
xlHTML HTML file format
xlRTF Rich Text Format (RTF)
xlCSV Comma separated values file format (CSV)
xlText Tab separated values file format (TSV)
xlUnicodeCSV Comma separated unicode values file format (CSV)
xlUnicodeText Tab separated unicode values file format (TSV)

Exemple

Cet exemple crée un nouveau classeur avec une feuille, puis enregistre le classeur

Var
  Workbook: IXLSWorkbook;
begin
  Workbook := TXLSWorkbook.Create; {create new Workbook}
  Workbook.Worksheets.Add;
  {...}
  //Save Workbook as Excel 97 file format 
  Workbook.SaveAs('C:\book.xls');
  //Save Workbook as Excel 5-95 file format 
  Workbook.SaveAs('C:\book5.xls', xlExcel5);
  //Save Workbook as HTML 
  Workbook.SaveAs('C:\book.html', xlHTML);
  //Save Workbook as RTF file 
  Workbook.SaveAs('C:\book.rtf', xlRTF);
  //Save active Worksheet as comma separated values (CSV)
  Workbook.SaveAs('C:\book.csv', xlCSV);
  //Save active Worksheet as tab separated values (TSV)
  Workbook.SaveAs('C:\book.tsv', xlText);
  //Save active Worksheet as comma separated unicode values (CSV)
  Workbook.SaveAs('C:\book.csv', xlUnicodeCSV);
  //Save active Worksheet as tab separated unicode values (TSV)
  Workbook.SaveAs('C:\book.tsv', xlUnicodeText);
end;
This example saves Workbook into the BLOB field

var
  MS: TMemoryStream;
begin
  if not (ClientDataSet1.State in [dsInsert, dsEdit]) then
    ClientDataSet1.Insert;
  MS := TMemoryStream.Create();
  try
    FWorkbook.SaveAs(MS);
    ClientDataSet1Documents.LoadFromStream(MS);
  finally
    MS.Free;
  end;
  ClientDataSet1.Post;
end;