| FileName | WideString. 저장할 파일 이름을 지정하는 문자열입니다 전체 경로를 포함할 수 있으며, 포함하지 않으면 Workbook이 현재 폴더에 파일을 저장합니다 |
| FileFormat | 선택적 TXLSFileFormat입니다 저장할 파일 형식을 나타내는 값입니다 기본값은 xlExcel97입니다 |
| Stream | TStream. Workbook을 Stream 매개 변수에 지정된 스트림에 저장합니다 |
XLS 파일 출력은 대상을 교체하기 전에 형제(sibling) 스테이징 파일에서 직렬화를 완료합니다. 커밋이 실패하면 기존 대상은 그대로 유지되고 캡처한 네이티브 오류가 통합 문서 진단을 통해 보고됩니다
POSIX rename을 지원하는 Windows 파일 시스템에서는 삭제를 허용하는 메타데이터 또는 리더 핸들이 열려 있어도 교체가 성공할 수 있습니다. 기존 리더는 계속 원본 파일 객체를 보고, 대상 이름으로 여는 새 리더는 완료된 교체를 봅니다
대상은 삭제 접근과 삭제 공유를 허용해야 하며 읽기 전용 대상은 여전히 거부됩니다. 실패한 커밋은 재시도하지 않고, 누락된 대상, reparse 경로, 지원되지 않는 파일 시스템은 교체 전에 선택된 레거시 커밋 경로를 사용합니다
원자적 교체는 완성된 파일 하나의 공개(publish)를 보호할 뿐, 같은 이름을 다른 프로세스가 동시에 교체하는 상황에 대한 compare-and-swap 격리까지는 제공하지 않습니다
| xlExcel97 | MS Excel 97,2000,XP,2003 file format |
| xlExcel5 | MS Excel 5,95 file format |
| xlHTML | HTML file format |
| xlRTF | Rich Text Format (RTF) |
| xlCSV | 쉼표로 구분된 값 파일 형식(CSV) |
| xlText | Tab separated values file format (TSV) |
| xlUnicodeCSV | 쉼표로 구분된 유니코드 값 파일 형식(CSV) |
| xlUnicodeText | 탭으로 구분된 유니코드 값 파일 형식(TSV) |
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;
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;