DioDocs for Excelでは、.NET Coreを使用してjsonストリームのインポートとエクスポートがサポートされます。
このトピックには、次のタスクが含まれています。
IWorkbookインタフェースのToJsonメソッドを使用して、ワークブックをjson文字列またはストリームにエクスポートできます。このメソッドを使用すると、外部参照を使用した数式を含むワークブックをエクスポートすることもできます。また、IWorkbook インタフェースのFromJsonメソッドを使用して、json 文字列またはストリームをワークブックにインポートできます。
json ストリームをインポートおよびエクスポートする方法については、次のサンプルコードを参照してください。
C# |
コードのコピー
|
---|---|
//ToJson&FromJsonはspread.sheets製品と組み合わせて使用できます //GcExcelはExcelファイルをインポートします //パスを実際のソースファイルパスに変更します string source = "savingfile.xlsx"; workbook.Open(source); //GcExcelをjson文字列にエクスポートします var jsonstr = workbook.ToJson(); //json文字列を使用してspread.sheets製品を初期化します //spread.sheetsはファイルの内容を表示します //spread.sheets製品はjson文字列をエクスポートします //GcExcelはjson文字列を使用して初期化します workbook.FromJson(jsonstr); //GcExcelはワークブックをExcelファイルにエクスポートします //パスを実際のソースファイルパスに変更します string export = "export.xlsx"; workbook.Save(export); |
メモ:複雑な数式を持つワークシートを含んだ大きなワークブックを使用する場合、パフォーマンスを向上させるために、ワークブックとワークシートを個別の JSON ストリームにエクスポートおよびインポートできます。 詳細については、「ワークシートなしでのJSONのインポートとエクスポート」を参照してください。
ワークシートのデータをjson文字列にエクスポートするには、IWorksheetインタフェースのToJsonメソッドを使用します。また、IWorksheetインタフェースのFromJsonを使用して、json文字列をワークシートにインポートすることができます。ワークシートは、同じまたは別のワークブックにエクスポートまたはインポートすることもできます。
本機能により、SpreadJSで大量のExcelファイルを表示することができます。 ExcelファイルはDioDocs for Excelで開くことができ、ToJsonメソッドを使用してワークシートのjson文字列をエクスポートできます。また、ワークシートのjson文字列をクライアントに転送して、SpreadJSにロードできます。
制限事項
ワークシートのjson文字列をエクスポートおよびインポートする方法については、次のサンプルコードを参照してください。
C# |
コードのコピー
|
---|---|
var workbook = new GrapeCity.Documents.Excel.Workbook(); //ToJsonメソッドとFromJsonメソッドは、SpreadJS製品と組み合わせて使用できます //DioDocs for ExcelのExcelファイルをインポートします string source = "ExcelJsonInput.xlsx"; workbook.Open(source); //ファイルを開きます GrapeCity.Documents.Excel.Workbook new_workbook = new GrapeCity.Documents.Excel.Workbook(); new_workbook.Open(source); foreach (IWorksheet worksheet in workbook.Worksheets) { worksheet.Range["D40:F40"].Value = new string[] { "Device", "Quantity", "Unit Price" }; worksheet.Range["D41:F44"].Value = new object[,] { { "T540p", 12, 9850 }, { "T570", 5, 7460 }, { "Y460", 6, 5400 }, { "Y460F", 8, 6240 } }; //DioDocs for Excelのワークシートをjson文字列にエクスポートします string json = worksheet.ToJson(); //json文字列を使用して、SpreadJS製品を初期化できます //SpreadJS製品はExcelファイルの内容を表示します //SpreadJS製品を使用して、ワークシートのjson文字列をエクスポートできます //DioDocs for Excelのjson文字列を使用して、対応するワークシートの内容を更新します new_workbook.Worksheets[worksheet.Name].FromJson(json); } //DioDocs for ExcelのワークブックをExcelファイルにエクスポートします string export = "ExcelJsonOutput.xlsx"; new_workbook.Save(export); |
DioDocs for Excelでは、IWorkbookインタフェースのFromJsonメソッドを使用してJSONファイルをインポートする際にJSONエラーが発生した場合、そのエラーを取得するオプションが用意されています。エラーメッセージはJsonErrorクラスのErrorMessageプロパティによって表示されます。次の2種類のエラーメッセージがサポートされています。
次のサンプルコードは、DioDocs for Excelに数式エラーを含むJSONファイルがインポートされたときの数式JSONエラーを示しています。
C# |
コードのコピー
|
---|---|
Workbook workbook = new Workbook(); IList<JsonError> errors = workbook.FromJson(File.OpenRead("ErrorJson.json")); foreach (JsonError item in errors) { if (item is FormulaJsonError) { FormulaJsonError fError = item as FormulaJsonError; Console.WriteLine(fError.ErrorMessage + " " + workbook.Worksheets[fError.WorksheetName].Range[fError.Row, fError.Column].ToString() + " " + fError.Formula); } if (item is DataValidationJsonError) { DataValidationJsonError dError = item as DataValidationJsonError; Console.WriteLine(dError.ErrorMessage + " " + workbook.Worksheets[dError.WorksheetName].Range[dError.Range.ToString()] + " " + dError.ErrorContent); } } |
制限事項
JSONファイルのデータ検証の数式にエラーが発生する場合、データ検証のJSONエラーが生成されます。