Documentação do HotXLS

Método SaveAs

Guarda as alterações do Livro num ficheiro ou fluxo diferente. Devolve 1 em caso de sucesso

Sintaxe

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. Cadeia de caracteres que indica o nome do ficheiro a guardar. Pode incluir um caminho completo; se não incluir, o Workbook guarda o ficheiro na pasta atual
FileFormat Optional TXLSFileFormat. Valor que indica o formato do ficheiro a guardar. O valor predefinido é xlExcel97
Stream TStream. Guarda o Workbook num stream especificado no parâmetro Stream

Descrição

A saída para ficheiros XLS conclui a serialização num ficheiro de preparação irmão antes de substituir o destino; um commit falhado deixa o destino existente intacto e reporta o erro nativo capturado através dos diagnósticos do livro de trabalho

Em sistemas de ficheiros Windows que suportam rename POSIX, a substituição pode ter sucesso enquanto um handle de metadados ou de leitura que permita eliminação permanece aberto; um leitor existente continua a ver o objeto de ficheiro original, e um novo leitor do nome de destino vê a substituição concluída

O destino deve permitir acesso de eliminação e partilha de eliminação, e alvos só de leitura continuam a ser rejeitados; um commit falhado não é repetido, enquanto destinos em falta, caminhos reparse e sistemas de ficheiros não suportados usam o caminho de commit legado selecionado antes da substituição

A substituição atómica protege a publicação de um ficheiro concluído; não fornece isolamento de compare-and-swap contra outro processo que substitua concorrentemente o mesmo nome

FileFormat pode ser uma destas constantes TXLSFileFormat
xlExcel97 Formato de ficheiro MS Excel 97,2000,XP,2003
xlExcel5 Formato de ficheiro MS Excel 5,95
xlHTML Formato de ficheiro HTML
xlRTF Formato Rich Text (RTF)
xlCSV Formato de ficheiro de valores separados por vírgulas (CSV)
xlText Formato de ficheiro de valores separados por tabulação (TSV)
xlUnicodeCSV Formato de ficheiro de valores unicode separados por vírgulas (CSV)
xlUnicodeText Formato de ficheiro de valores unicode separados por tabulação (TSV)

Exemplo

Este exemplo cria um novo Livro com uma Folha de Cálculo e guarda-o

Var
  Workbook: IXLSWorkbook;
begin
  Workbook := TXLSWorkbook.Create; {create new Workbook}
  Workbook.Worksheets.Add;
  {...}
  //Save livro as Excel 97 ficheiro formato 
  Workbook.SaveAs('C:\book.xls');
  //Save livro as Excel 5-95 ficheiro formato 
  Workbook.SaveAs('C:\book5.xls', xlExcel5);
  //Save livro as HTML 
  Workbook.SaveAs('C:\book.html', xlHTML);
  //Save livro as RTF ficheiro 
  Workbook.SaveAs('C:\book.rtf', xlRTF);
  //Save active folha de cálculo as comma separated values (CSV)
  Workbook.SaveAs('C:\book.csv', xlCSV);
  //Save active folha de cálculo as tab separated values (TSV)
  Workbook.SaveAs('C:\book.tsv', xlText);
  //Save active folha de cálculo as comma separated unicode values (CSV)
  Workbook.SaveAs('C:\book.csv', xlUnicodeCSV);
  //Save active folha de cálculo as tab separated unicode values (TSV)
  Workbook.SaveAs('C:\book.tsv', xlUnicodeText);
end;
Este exemplo guarda o Livro num 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;