HotXLS-Dokumentation

SaveAs-Methode

Speichert Änderungen an der Arbeitsmappe in einer anderen Datei oder einem Stream. Gibt 1 zurück, wenn erfolgreich

Syntax

function SaveAs(FileName: WideString): Integer;
function SaveAs(FileName: WideString; FileFormat: TXLSFileFormat): Integer;
function SaveAs(Stream: TStream);
function SaveAs(Stream: TStream; FileFormat: TXLSFileFormat): Integer;
FileNameWideString. Ein Zeichenfolgenwert, der den Namen der zu speichernden Datei angibt. Ein vollständiger Pfad kann angegeben werden; andernfalls speichert Workbook die Datei im aktuellen Ordner
FileFormatOptional TXLSFileFormat. Ein Wert, der das Format der zu speichernden Datei angibt. Standard ist xlExcel97
StreamTStream. Saves Arbeitsmappe zu stream angegeben im Stream parameter

Beschreibung

Die XLS-Dateiausgabe schließt die Serialisierung in einer Geschwister-Staging-Datei ab, bevor das Ziel ersetzt wird; ein fehlgeschlagener Commit lässt das vorhandene Ziel unangetastet und meldet den erfassten nativen Fehler über die Arbeitsmappen-Diagnostik

Auf Windows-Dateisystemen mit POSIX-Rename kann das Ersetzen gelingen, während ein Metadaten- oder Reader-Handle, der Löschung erlaubt, offen bleibt; ein bestehender Reader sieht weiterhin das ursprüngliche Dateiobjekt, und ein neuer Reader des Zielnamens sieht die abgeschlossene Ersetzung

Das Ziel muss Löschzugriff und Lösch-Sharing erlauben, und schreibgeschützte Ziele werden weiterhin abgelehnt; ein fehlgeschlagener Commit wird nicht wiederholt, während fehlende Ziele, Reparse-Pfade und nicht unterstützte Dateisysteme den vor der Ersetzung gewählten Legacy-Commit-Pfad verwenden

Atomares Ersetzen schützt die Veröffentlichung einer vollständigen Datei; es bietet keine Compare-and-Swap-Isolation gegen einen anderen Prozess, der denselben Namen gleichzeitig ersetzt

function
SaveAs(FileName: WideString; FileFormat: TXLSFileFormat): Integer;MS Excel 97,2000,XP,2003 file format
xlExcel5MS Excel 5,95 file format
xlHTMLHTML file format
xlRTFRich Text Format (RTF)
xlCSVDateiformat mit durch Komma getrennten Werten (CSV)
xlTextTab separated values file format (TSV)
xlUnicodeCSVDateiformat mit durch Komma getrennten Unicode-Werten (CSV)
xlUnicodeTextDateiformat mit durch Tabulator getrennten Unicode-Werten (TSV)

Beispiel

Dieses Beispiel erstellt eine neue Arbeitsmappe mit einem Tabellenblatt und speichert dann die Arbeitsmappe

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;
Dieses Beispiel speichert die Arbeitsmappe in ein BLOB-Feld

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;