画像を配置したSpreadをJSONに出力して読み込むと、画像のサイズが正しく復元されない
対象製品
SpreadJS(Ver.10.x.x -)
状況
修正済み
詳細
シートいっぱいのサイズの画像を配置したSpreadをJSONに出力した後、出力したJSONから読み込みを行った場合、画像が1行・1列分縮小されて表示されます。
【再現手順】
1.Spreadとボタンを配置したHTMLファイルを用意する
2.1.のファイルに下記のサンプルコードを追加する
★サンプルコード(JavaScript)
3. ボタンを押下して、再度画像を読み込む
【再現手順】
1.Spreadとボタンを配置したHTMLファイルを用意する
2.1.のファイルに下記のサンプルコードを追加する
★サンプルコード(JavaScript)
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var targetSheet = spread.getActiveSheet();
targetSheet.setRowCount(10, GC.Spread.Sheets.SheetArea.viewport);
targetSheet.setColumnCount(7, GC.Spread.Sheets.SheetArea.viewport);
//任意の画像を読み込みます
targetSheet.pictures.add("f3", "test.png", 0, 0)
document.getElementById('button1').onclick = function () {
//一度JSON化して再度JSONから読み込みます
var json = spread.toJSON();
var jsonTxt = JSON.stringify(json);
var json = JSON.parse(jsonTxt);
spread.fromJSON(json);
}
var targetSheet = spread.getActiveSheet();
targetSheet.setRowCount(10, GC.Spread.Sheets.SheetArea.viewport);
targetSheet.setColumnCount(7, GC.Spread.Sheets.SheetArea.viewport);
//任意の画像を読み込みます
targetSheet.pictures.add("f3", "test.png", 0, 0)
document.getElementById('button1').onclick = function () {
//一度JSON化して再度JSONから読み込みます
var json = spread.toJSON();
var jsonTxt = JSON.stringify(json);
var json = JSON.parse(jsonTxt);
spread.fromJSON(json);
}
3. ボタンを押下して、再度画像を読み込む
回避方法
SpreadJS (Ver.13.0.4)で修正済み
Ver.13.0.4より前のバージョンでは次の方法で回避可能です。
Spreadに配置した画像に対して、以下のようにendRow、endRowOffset、endColumn、endColumnOffsetを設定します。
★サンプルコード(JavaScript)
Ver.13.0.4より前のバージョンでは次の方法で回避可能です。
Spreadに配置した画像に対して、以下のようにendRow、endRowOffset、endColumn、endColumnOffsetを設定します。
★サンプルコード(JavaScript)
//任意の画像を読み込みます
//activeSheet.pictures.add("f3", "test.png", 0, 0)
var picture = targetSheet.pictures.add("f3", "test.png", 0, 0)
var rowHeight = targetSheet.getRowHeight(1);
var ColumnWidth = targetSheet.getColumnWidth(1);
picture.endRow(10);
picture.endRowOffset(rowHeight);
picture.endColumn(7);
picture.endColumnOffset(ColumnWidth);
//activeSheet.pictures.add("f3", "test.png", 0, 0)
var picture = targetSheet.pictures.add("f3", "test.png", 0, 0)
var rowHeight = targetSheet.getRowHeight(1);
var ColumnWidth = targetSheet.getColumnWidth(1);
picture.endRow(10);
picture.endRowOffset(rowHeight);
picture.endColumn(7);
picture.endColumnOffset(ColumnWidth);