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"); } |