Documentação do HotXLS

Método SaveAs

Salva as alterações na Pasta de Trabalho em um arquivo ou fluxo diferente. Retorna 1 em caso de êxito

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. Uma string que indica o nome do arquivo a ser salvo. Você pode incluir um caminho completo; se não incluir, Workbook salva o arquivo na pasta atual
FileFormat TXLSFileFormat opcional. Um valor que indica o formato do arquivo a ser salvo. O padrão é xlExcel97
Stream TStream. Saves pasta de trabalho para stream especificado no Stream parameter

Descrição

A saída de arquivos XLS conclui a serialização em um arquivo de preparação irmão antes de substituir o destino; um commit com falha deixa o destino existente intacto e reporta o erro nativo capturado por meio dos diagnósticos da pasta de trabalho

Em sistemas de arquivos Windows com suporte a renomeação POSIX, a substituição pode ter sucesso enquanto um handle de metadados ou de leitor que permite exclusão permanece aberto; um leitor existente continua vendo o objeto de arquivo original, e um novo leitor do nome de destino vê a substituição concluída

O destino deve permitir acesso de exclusão e compartilhamento de exclusão, e alvos somente leitura continuam sendo rejeitados; um commit com falha não é repetido, enquanto destinos ausentes, caminhos reparse e sistemas de arquivos sem suporte usam o caminho de commit legado selecionado antes da substituição

A substituição atômica protege a publicação de um arquivo concluído; ela não oferece isolamento de compare-and-swap contra outro processo substituindo concorrentemente o mesmo nome

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

Exemplo

Este exemplo cria uma nova Pasta de Trabalho com uma Planilha e, em seguida, salva a Pasta de Trabalho

Var
  Workbook: IXLSWorkbook;
begin
  Workbook := TXLSWorkbook.Create; {create new Workbook}
  Workbook.Worksheets.Add;
  {...}
  //Save pasta de trabalho as Excel 97 arquivo formato 
  Workbook.SaveAs('C:\book.xls');
  //Save pasta de trabalho as Excel 5-95 arquivo formato 
  Workbook.SaveAs('C:\book5.xls', xlExcel5);
  //Save pasta de trabalho as HTML 
  Workbook.SaveAs('C:\book.html', xlHTML);
  //Save pasta de trabalho as RTF arquivo 
  Workbook.SaveAs('C:\book.rtf', xlRTF);
  //Save active planilha as comma separated valores (CSV)
  Workbook.SaveAs('C:\book.csv', xlCSV);
  //Save active planilha as tab separated valores (TSV)
  Workbook.SaveAs('C:\book.tsv', xlText);
  //Save active planilha as comma separated unicode valores (CSV)
  Workbook.SaveAs('C:\book.csv', xlUnicodeCSV);
  //Save active planilha as tab separated unicode valores (TSV)
  Workbook.SaveAs('C:\book.tsv', xlUnicodeText);
end;
Este exemplo salva a Pasta de Trabalho no 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;