DioDocs for Excel
DioDocs for Excel
ワークシートなしでのJSONのインポートとエクスポート
ファイル操作 > JSON ストリームのインポートとエクスポート > ワークシートなしでのJSONのインポートとエクスポート

DioDocs for Excel では、ワークブックの枠組みをJSONストリームに変換することができます。つまり、データを持たないワークシートだけを含むワークブックをエクスポートすることができるということです。これは、SerializationOptions.IgnoreSheetsにtrueを設定し、IWorkbook.ToJsonメソッドを呼び出す際にパラメータとして渡すことで実装できます。 IWorksheet.ToJson(Stream stream)メソッドを使用すれば、ワークシートだけを別のJSONストリームにエクスポートすることも可能です。同様に、IWorkSheet.FromJson(Stream stream)を使用すると、必要なときにJSONストリームからワークシートをインポートすることができます。

この機能は、複雑な数式を含むワークシートが多数存在する大規模なワークブックを読み込む際に、パフォーマンスを最適化するために特に有効です。上記の方法を使用すると、例えばSpreadJSにて、ワークシート名を含む空白のワークブックをまず読み込み、任意のワークシートが選択された際にそのデータを別途読み込むことができます。

以下の例では、ワークブックとワークシートを別々のJSONストリームにエクスポートし、必要なときに新規のワークブックのインスタンスに読み込む方法を示しています。

C#
コードのコピー
{
    //新規のワークブックを作成します。
    var workbook = new GrapeCity.Documents.Excel.Workbook();

    //元のワークブックです。
    var oldWorkbook = new GrapeCity.Documents.Excel.Workbook();

    oldWorkbook.Open("12-month cash flow statement1.xlsx");

    using (Stream workbookStream = new FileStream("workbook.json", FileMode.Create))
    {
        //ワークシートなしでワークブックの枠組みをJSONストリームにエクスポートします。
        oldWorkbook.ToJson(workbookStream, new SerializationOptions { IgnoreSheets = true });

        //新規のワークブックにJSONストリーム(ワークブックのみ)をインポートします。
        workbook.FromJson(workbookStream);
    }

    using (Stream worksheetStream = new FileStream("worksheet.json", FileMode.Create))
    {
        //ワークシートをJSONストリームにエクスポートします。
        oldWorkbook.ActiveSheet.ToJson(worksheetStream);

        //新しいワークブックにJSONストリーム(ワークシート)をインポートします。
        workbook.ActiveSheet.FromJson(worksheetStream);
    }

    //Excelファイルに保存します。
    workbook.Save("workbooktojsonwithoutsheets.xlsx");

}