DioDocs for Excel
DioDocs for Excel
sjs ファイルのインポートとエクスポート
ファイル操作 > SpreadJS ファイルのインポートとエクスポート > sjs ファイルのインポートとエクスポート

SpreadJS V16J では、大規模で複雑なファイルをより高速に処理し、保存時によりサイズの小さなファイルを生成するために、新しいファイル形式 sjs が導入されました。新しい sjs 形式は、複数の小さな JSON ファイルを含む zip ファイルであり、xlsx ファイルの XML 構造と同様の構造になっています。

本製品では、xlsx や csv などのファイル形式と同様に、新しい sjs ファイル形式をインポートおよびエクスポートすることができます。sjs ファイルをインポートするには、Workbook クラスの Open メソッドを使用します。ファイル読み込み後、Workbook クラスの Save メソッドを使用して xlsx ファイルや sjs ファイルにエクスポートすることができます。sjs ファイルを読み込み保存する際に、OpenFileFormat  列挙型および SaveFileFormat 列挙型の新しいオプション「Sjs」を使用することができます。

次のサンプルコードは、ファイル名を指定して sjs ファイルをインポートしエクスポートする方法を示しています。

C#
コードのコピー
// ワークブックを初期化します
Workbook workbook = new Workbook();

// sjs ファイルを開きます
workbook.Open("ProjectPlan.sjs", OpenFileFormat.Sjs);

// sjs ファイルを保存します
workbook.Save("SaveProjectPlan.sjs", SaveFileFormat.Sjs);

次のサンプルコードは、ファイルストリームから sjs ファイルをインポートおよびエクスポートする方法を示しています。

C#
コードのコピー
// ワークブックを初期化します
Workbook workbook = new Workbook();

// ストリームから sjs ファイルを開きます
var importStream = new FileStream("ProjectPlan.sjs", FileMode.Open);
workbook.Open(importStream, OpenFileFormat.Sjs);

// sjs ファイルをストリームに保存します
var exportStream = new FileStream("SaveProjectPlan.sjs", FileMode.Create);
workbook.Save(exportStream, SaveFileFormat.Sjs);

さらに、sjs ファイルのインポートとエクスポートをカスタマイズできる SjsOpenOptions クラスと SjsSaveOptions クラスがあります。これらのオプションは、多数の数式、スタイル、未使用の定義された名前を含むファイルなど、サイズの大きなファイルを処理する場合に特に便利です。オプションの一覧は以下のとおりです。

クラス オプション 説明
インポートのオプション SjsOpenOptions IncludeStyles sjs ファイルを読み込む際にスタイルを含めるかどうかを指定します。デフォルトは true です。
IncludeFormulas sjs ファイルを読み込む際に数式を含めるかどうかを指定します。デフォルトは true です。
エクスポートのオプション SjsSaveOptions IncludeStyles sjs ファイルを保存する際にスタイルを含めるかどうかを指定します。デフォルトは true です。
IncludeFormulas sjs ファイルを保存する際に数式を含めるかどうかを指定します。デフォルトは true です。
IncludeUnusedNames sjs ファイルを保存する際に未使用の定義された名前を含めるかどうかを指定します。デフォルトは true です。
IncludeEmptyRegionCells sjs ファイルを保存する際に使用範囲外の空のセルを含めるかどうかを指定します。デフォルトは true です。

次のサンプルコードは、SjsOpenOptions と SjsSaveOptions を使用して sjs ファイルをインポートしエクスポートする方法を示しています。

C#
コードのコピー
// ワークブックを初期化します
Workbook workbook = new Workbook();

// 数式を含む sjs ファイルを開きます
SjsOpenOptions openOptions = new SjsOpenOptions();
openOptions.IncludeFormulas = false;
openOptions.IncludeStyles = false;
workbook.Open("ProjectPlan.sjs", openOptions);

// スタイルを含む sjs ファイルを保存します
SjsSaveOptions saveOptions = new SjsSaveOptions();
saveOptions.IncludeStyles = false;
saveOptions.IncludeFormulas = true;
saveOptions.IncludeUnusedNames = false;
saveOptions.IncludeEmptyRegionCells = false;
workbook.Save("SaveProjectPlan.sjs", saveOptions);

sjs ファイル内のすべての JSON ファイルを1つの JSON 文字列またはストリームに統合するには、ToSjsJson メソッドを使用します。なお、このメソッドでも SjsSaveOptions を使用することができます。

クラス メソッド 説明
Workbook ToSjsJson() ワークブックから JSON 文字列を生成します。sjs ファイル内のすべての JSON ファイルを1つの文字列に統合します。
ToSjsJson(SjsSaveOptions options) 保存オプションを使用してワークブックから JSON 文字列を生成します。sjs ファイル内のすべての JSON ファイルを1つの文字列に統合します。
ToSjsJson(Stream stream) sjs ファイル内のすべてのJSON ファイルを1つの JSON 文字列に統合し、その文字列をストリームに格納します。
ToSjsJson(Stream stream, SjsSaveOptions options) 保存オプションを使用してsjs ファイル内のすべての JSON ファイルを1つの JSON 文字列に統合し、その文字列をストリームに格納します。
FromSjsJson(string json) sjsファイルの内容を含むJSON文字列からワークブックを生成します。
FromSjsJson(string json, SjsOpenOptions options) sjsファイルの内容を含むオープンオプションを使用して、JSON文字列からワークブックを生成します。
FromSjsJson(Stream stream) sjsファイルの内容を含むJSONストリームからワークブックを生成します。
FromSjsJson(Stream stream, SjsOpenOptions options) sjsファイルの内容を含むオープンオプションを使用して、JSON ストリームからワークブックを生成します。

次のサンプルコードは、sjs ファイルを1つの JSON 文字列に統合し、その文字列をストリームに保存しています。

C#
コードのコピー
// ワークブックを初期化します
Workbook workbook = new Workbook();

// sjs ファイルを開きます
workbook.Open("ProjectPlan.sjs", OpenFileFormat.Sjs);

// sjs ファイルから JSON 文字列を生成し、ストリームに保存します
var exportStream = new FileStream("SaveProjectPlan.json", FileMode.Create);
workbook.ToSjsJson(exportStream);

ピクセルベースでの列幅設定

DioDocs for Excelでは、.sjsファイルをPDFや画像としてエクスポートする際、WorkbookOptionsクラスのPixelBasedColumnWidthプロパティを使用して、文字ではなくピクセルに基づいて列幅を設定することができます。

ピクセルベースでの列幅を設定する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
// Initialize WorkbookOptions.
WorkbookOptions workbookOptions = new WorkbookOptions();

// Enable pixel-based column width for the workbook.
workbookOptions.PixelBasedColumnWidth = true;
var workbook = new Workbook(workbookOptions);

// Open .sjs file.
workbook.Open("Event budget.sjs");
IWorksheet worksheet = workbook.Worksheets[0];

// Save to a PDF and PNG file.
workbook.Save("SavePDFWithPixelBasedColumnWidth.pdf");
worksheet.ToImage("SavePDFWithPixelBasedColumnWidth.png");