HotXLS-documentatie

SaveAs methode

Slaat wijzigingen in de werkmap op in een ander bestand of stream. Retourneert 1 bij succes

Syntaxis

functie SaveAs(FileName: WideString): Integer;
functie SaveAs(FileName: WideString; FileFormat: TXLSFileFormat): Integer;
functie SaveAs(Stream: TStream);
functie SaveAs(Stream: TStream; FileFormat: TXLSFileFormat): Integer;
FileName WideString. Een tekenreeks die de naam van het op te slaan bestand aangeeft. Je kunt een volledig pad opnemen; doe je dat niet, dan slaat Workbook het bestand op in de huidige map
FileFormat Optionele TXLSFileFormat. Een waarde die het formaat van het op te slaan bestand aangeeft. Standaard is xlExcel97
Stream TStream. Slaat Workbook op in een stream die via de parameter Stream wordt opgegeven

Beschrijving

XLS-bestandsuitvoer rondt de serialisatie af in een staging-bestand naast de bestemming voordat de bestemming wordt vervangen; een mislukte commit laat de bestaande bestemming intact en meldt de vastgelegde native fout via de werkmapdiagnostiek

Op Windows-bestandssystemen die POSIX-rename ondersteunen kan vervanging slagen terwijl er nog een metadata- of lezerhandle open staat die verwijdering toestaat; een bestaande lezer blijft het oorspronkelijke bestandsobject zien, en een nieuwe lezer van de bestemmingsnaam ziet de voltooide vervanging

De bestemming moet delete-toegang en delete-sharing toestaan, en alleen-lezen doelen worden nog steeds geweigerd; een mislukte commit wordt niet opnieuw geprobeerd, terwijl ontbrekende doelen, reparse-paden en niet-ondersteunde bestandssystemen het legacy-commitpad gebruiken dat vóór de vervanging is gekozen

Atomische vervanging beschermt de publicatie van één voltooid bestand; het biedt geen compare-and-swap-isolatie tegen een ander proces dat dezelfde naam tegelijk vervangt

FileFormat can be one of these TXLSFileFormat constants
xlExcel97 MS Excel 97,2000,XP,2003-bestandsformaat
xlExcel5 MS Excel 5,95-bestandsformaat
xlHTML HTML file format
xlRTF Rich Text Format (RTF)
xlCSV Bestandsformaat met door komma's gescheiden waarden (CSV)
xlText Bestandsformaat met door tabs gescheiden waarden (TSV)
xlUnicodeCSV Bestandsformaat met door komma's gescheiden unicode-waarden (CSV)
xlUnicodeText Bestandsformaat met door tabs gescheiden unicode-waarden (TSV)

Voorbeeld

Dit voorbeeld maakt een nieuwe werkmap met één werkblad aan en slaat de werkmap vervolgens op

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;
Dit voorbeeld slaat Workbook op in het BLOB-veld

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;