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
StreamStream パラメータで指定したストリームに Workbook を保存する TStream

説明

XLS ファイル出力は、出力先を置き換える前に同じフォルダー内のステージング ファイルでシリアライズを完了させます。コミットに失敗しても既存の出力先はそのまま残り、捕捉されたネイティブ エラーがワークブック診断を通じて報告されます

POSIX rename をサポートする Windows ファイルシステムでは、削除を許可するメタデータやリーダー ハンドルが開いたままでも置き換えが成功することがあります。既存のリーダーは元のファイル オブジェクトを見続け、出力先名の新しいリーダーは完了した置き換えを見ます

出力先は削除アクセスと削除共有を許可する必要があり、読み取り専用ターゲットは引き続き拒否されます。失敗したコミットは再試行されません。欠落ターゲット、reparse パス、サポート外のファイルシステムは、置き換え前に選択された従来のコミット パスを使用します

アトミックな置き換えは、完成した 1 つのファイルの公開を保護するものです。同じ名前を別のプロセスが同時に置き換える場合に対する compare-and-swap 分離は提供しません

FileFormat には以下の TXLSFileFormat 定数のいずれかを使用できます
xlExcel97MS Excel 97,2000,XP,2003 file format
xlExcel5MS Excel 5,95 file format
xlHTMLHTML file format
xlRTFRich Text Format (RTF)
xlCSV 固有のスタイルと色を持ち、次のオブジェクト経由で適用されます
xlTextTab separated values file format (TSV)
xlUnicodeCSVの色ソース優先順位(テーマ > インデックス > RGB)
xlUnicodeText エントリーごとの水平 / 垂直 / 折り返し / インデント / 回転の 各調整項目の説明です

使用例

この使用例は、1 つのワークシートを含む新しいワークブックを作成して保存します

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;
この使用例は、ワークブックを 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;