多段になっている列のヘッダテキスト情報が正しくエクスポートされない
対象製品
SpreadJS 9J
発生環境
3.20152.21
状況
修正済み
詳細
AngularJS使用時にExcel出力を行うと、多段になっている列のヘッダテキスト情報が正しくエクスポートされない現象が発生します。
【再現手順】
1.localhostにExcelIOサービスをセットアップします。
2.本ページに添付のサンプルHTML(M16923001.html)を実行します。
3."Export"ボタンを押下してExcel出力を実行します。
【動作結果】
出力されたエクセルファイルのsetValue一行目にはsetValue()で設定した情報が表示されますが、二行目にはAngularJSで定義されたヘッダ情報が表示されます(すべてsetValue()での設定値になるのが正しい動作です)。
【現象再現ファイル】
M160923001.zip
【再現手順】
1.localhostにExcelIOサービスをセットアップします。
2.本ページに添付のサンプルHTML(M16923001.html)を実行します。
3."Export"ボタンを押下してExcel出力を実行します。
【動作結果】
出力されたエクセルファイルのsetValue一行目にはsetValue()で設定した情報が表示されますが、二行目にはAngularJSで定義されたヘッダ情報が表示されます(すべてsetValue()での設定値になるのが正しい動作です)。
【現象再現ファイル】
M160923001.zip
回避方法
SpreadJS 9J SP2(Ver.3.20152.22)で修正済み
SpreadJS 9J SP2(Ver.3.20152.22)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
【回避方法】
ExcelIOサービスに送信するJSONデータを下記のように作成することで現象の回避が可能です。()
// spread1に正しいヘッダの情報、spread2に連結データの情報
var spread1 = spread.toJSON({ includeBindingSource: false }), spread2 = spread.toJSON({ includeBindingSource: true });
// spread1のヘッダ情報をspread2に設定
spread2.sheets.Models.colHeaderData = spread1.sheets.Models.colHeaderData;
※再現ファイル M160923001.zip には、上記回避策を適用した再現コードも同梱されています。
SpreadJS 9J SP2(Ver.3.20152.22)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
【回避方法】
ExcelIOサービスに送信するJSONデータを下記のように作成することで現象の回避が可能です。()
// spread1に正しいヘッダの情報、spread2に連結データの情報
var spread1 = spread.toJSON({ includeBindingSource: false }), spread2 = spread.toJSON({ includeBindingSource: true });
// spread1のヘッダ情報をspread2に設定
spread2.sheets.Models.colHeaderData = spread1.sheets.Models.colHeaderData;
※再現ファイル M160923001.zip には、上記回避策を適用した再現コードも同梱されています。