saveメソッドで空のファイルがエクスポートされる
対象製品
SpreadJS 9J
発生環境
SP1(9.20161.0)
状況
修正済み
詳細
saveメソッドで出力されたエクセルファイルの内容が空になる場合があります。
回避方法
SpreadJS 9J SP2(Ver.9.20171.0)で修正済み
SpreadJS 9J SP2(Ver.9.20171.0)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
saveメソッドの引数となるJSONデータに下記のような処理を実行することで現象の回避が可能です。
【回避策】
--------------------------------------------------
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var json = JSON.stringify(workbook.toJSON());
//saveメソッド用のJSONデータに対し、下記の処理を実施します
var spreadObj = JSON.parse(json);
for (var sheetName in spreadObj.sheets) {
var sheet = spreadObj.sheets[sheetName];
if ((!sheet.rows || sheet.rows.length === 0) ) {
sheet.rows = [{}];
}
}
json = JSON.stringify(spreadObj);
//上記のJSONを使用してsaveメソッドをコールします
excelIo.save(json, function (blob) {
・・・以下省略
--------------------------------------------------
SpreadJS 9J SP2(Ver.9.20171.0)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
saveメソッドの引数となるJSONデータに下記のような処理を実行することで現象の回避が可能です。
【回避策】
--------------------------------------------------
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var json = JSON.stringify(workbook.toJSON());
//saveメソッド用のJSONデータに対し、下記の処理を実施します
var spreadObj = JSON.parse(json);
for (var sheetName in spreadObj.sheets) {
var sheet = spreadObj.sheets[sheetName];
if ((!sheet.rows || sheet.rows.length === 0) ) {
sheet.rows = [{}];
}
}
json = JSON.stringify(spreadObj);
//上記のJSONを使用してsaveメソッドをコールします
excelIo.save(json, function (blob) {
・・・以下省略
--------------------------------------------------