Documentación de HotXLS

Método SaveAs

Guarda los cambios del libro de trabajo en un archivo o flujo diferente. Devuelve 1 si tiene éxito

Sintaxis

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. Una cadena que indica el nombre del archivo que se va a guardar. Puede incluir una ruta completa; si no lo hace, Workbook guarda el archivo en la carpeta actual
FileFormat TXLSFileFormat opcional. Valor que indica el formato del archivo que se guardará. El valor predeterminado es xlExcel97
Stream TStream. Saves libro stream especificado en el Stream parameter

Descripción

La salida de archivos XLS completa la serialización en un archivo de staging hermano antes de reemplazar el destino; un commit fallido deja el destino existente intacto y reporta el error nativo capturado a través de los diagnósticos del libro

En sistemas de archivos de Windows con rename POSIX, el reemplazo puede completarse mientras un identificador de metadatos o de lectura que permite la eliminación sigue abierto; un lector existente sigue viendo el objeto de archivo original, y un lector nuevo del nombre de destino ve el reemplazo completado

El destino debe permitir el acceso de eliminación y el uso compartido de eliminación, y los destinos de solo lectura siguen rechazándose; un commit fallido no se reintenta, mientras que los destinos ausentes, las rutas de reparse y los sistemas de archivos no soportados usan la ruta heredada de commit seleccionada antes del reemplazo

El reemplazo atómico protege la publicación de un archivo completado; no proporciona aislamiento compare-and-swap frente a otro proceso que reemplace el mismo nombre de forma concurrente

FileFormat puede ser una de estas constantes TXLSFileFormat
xlExcel97 Formato de archivo MS Excel 97, 2000, XP, 2003
xlExcel5 Formato de archivo MS Excel 5, 95
xlHTML Formato de archivo HTML
xlRTF Formato de texto enriquecido (RTF)
xlCSV Formato de archivo de valores separados por comas (CSV)
xlText Formato de archivo de valores separados por tabulaciones (TSV)
xlUnicodeCSV Formato de archivo CSV de valores unicode separados por comas
xlUnicodeText Formato de archivo TSV de valores unicode separados por tabulaciones

Ejemplo

Este ejemplo crea un nuevo libro de trabajo con una hoja de cálculo y luego guarda el libro de trabajo

Var
  Workbook: IXLSWorkbook;
begin
  Workbook := TXLSWorkbook.Create; {create new Workbook}
  Workbook.Worksheets.Add;
  {...}
  //Save libro as Excel 97 archivo formato 
  Workbook.SaveAs('C:\book.xls');
  //Save libro as Excel 5-95 archivo formato 
  Workbook.SaveAs('C:\book5.xls', xlExcel5);
  //Save libro as HTML 
  Workbook.SaveAs('C:\book.html', xlHTML);
  //Save libro as RTF archivo 
  Workbook.SaveAs('C:\book.rtf', xlRTF);
  //Save active hoja de cálculo as comma separated valores (CSV)
  Workbook.SaveAs('C:\book.csv', xlCSV);
  //Save active hoja de cálculo as tab separated valores (TSV)
  Workbook.SaveAs('C:\book.tsv', xlText);
  //Save active hoja de cálculo as comma separated unicode valores (CSV)
  Workbook.SaveAs('C:\book.csv', xlUnicodeCSV);
  //Save active hoja de cálculo as tab separated unicode valores (TSV)
  Workbook.SaveAs('C:\book.tsv', xlUnicodeText);
end;
Este ejemplo guarda el libro de trabajo en un campo BLOB

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;