HotXLS 문서

SaveAs 메서드

통합 문서에 대한 변경 내용을 다른 파일 또는 스트림에 저장합니다. 성공하면 1을 반환합니다

구문

function SaveAs(FileName: WideString): Integer;
function SaveAs(FileName: WideString; FileFormat: TXLSFileFormat): Integer;
function SaveAs(Stream: TStream);
function SaveAs(Stream: TStream; FileFormat: TXLSFileFormat): Integer;
FileNameWideString. 저장할 파일 이름을 지정하는 문자열입니다 전체 경로를 포함할 수 있으며, 포함하지 않으면 Workbook이 현재 폴더에 파일을 저장합니다
FileFormat선택적 TXLSFileFormat입니다 저장할 파일 형식을 나타내는 값입니다 기본값은 xlExcel97입니다
StreamTStream. Workbook을 Stream 매개 변수에 지정된 스트림에 저장합니다

설명

XLS 파일 출력은 대상을 교체하기 전에 형제(sibling) 스테이징 파일에서 직렬화를 완료합니다. 커밋이 실패하면 기존 대상은 그대로 유지되고 캡처한 네이티브 오류가 통합 문서 진단을 통해 보고됩니다

POSIX rename을 지원하는 Windows 파일 시스템에서는 삭제를 허용하는 메타데이터 또는 리더 핸들이 열려 있어도 교체가 성공할 수 있습니다. 기존 리더는 계속 원본 파일 객체를 보고, 대상 이름으로 여는 새 리더는 완료된 교체를 봅니다

대상은 삭제 접근과 삭제 공유를 허용해야 하며 읽기 전용 대상은 여전히 거부됩니다. 실패한 커밋은 재시도하지 않고, 누락된 대상, reparse 경로, 지원되지 않는 파일 시스템은 교체 전에 선택된 레거시 커밋 경로를 사용합니다

원자적 교체는 완성된 파일 하나의 공개(publish)를 보호할 뿐, 같은 이름을 다른 프로세스가 동시에 교체하는 상황에 대한 compare-and-swap 격리까지는 제공하지 않습니다

이 예제는 하나의 워크시트가 있는 새 통합 문서를 만들고 저장합니다
xlExcel97MS Excel 97,2000,XP,2003 file format
xlExcel5MS Excel 5,95 file format
xlHTMLHTML file format
xlRTFRich Text Format (RTF)
xlCSV쉼표로 구분된 값 파일 형식(CSV)
xlTextTab separated values file format (TSV)
xlUnicodeCSV쉼표로 구분된 유니코드 값 파일 형식(CSV)
xlUnicodeText탭으로 구분된 유니코드 값 파일 형식(TSV)

예제

이 예제는 통합 문서를 BLOB 필드에 저장합니다

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;
This example saves Workbook into the BLOB field

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;