2018年8月29日にリリースしたSpreadJS V11Jでは、スプレッドシートデータのシリアル化/逆シリアル化において、書式や数式情報の読込み・書出しをオフにしたり、行列ヘッダを固定行に変換したりできるオプションが追加されました。膨大な量のスタイルや計算処理を含むシートにおいて、それぞれを無視して読み込みが出来るようになった事で処理の高速化に役立てて頂けます。今回のブログでは、新しいオプションの概要と使い方について詳しく解説します。
基本的な使い方
はじめにデータをシリアル化/逆シリアル化する流れを説明します。まずはデータを取り出すタイミングから見てみましょう。スプレッドシートの関数toJSON
でデータを取り出し、シリアル化の処理を行うためJSON.stringify
を実行します。この手順によりスプレッドシートデータのシリアル化が完了します。
jsonStr = JSON.stringify(spread1.toJSON(serializationOption));
データを読み込む際は、上の手順で生成されたオブジェクトをJSON.parse
で逆シリアル化を行い、fromJSON
でスプレッドシートに取り込みます。
spread2.fromJSON(JSON.parse(jsonStr), jsonOptions);
オプションの種類
ここからは、追加となったオプションについて詳しく説明します。以下の表は、設定可能な項目の一覧です。
シリアル化のオプション(toJSON
の第1引数にセット)
追加オプション | 説明 |
---|---|
ignoreStyle | スタイルを無視するかどうかを指定 |
ignoreFormula | 数式を無視するかどうかを指定 |
rowHeadersAsFrozenColumns | 行ヘッダーを固定列として扱うかを指定 |
columnHeadersAsFrozenRows | 列ヘッダーを固定行として扱うかを指定 |
逆シリアル化のオプション(fromJSON
の第2引数にセット)
追加オプション | 説明 |
---|---|
ignoreStyle | スタイルを無視するかどうかを指定 |
ignoreFormula | 数式を無視するかどうかを指定 |
frozenColumnsAsRowHeaders | 固定列を行ヘッダーとして扱うかを指定 |
frozenRowsAsColumnHeaders | 固定行を列ヘッダーとして扱うかを指定 |
doNotRecalculateAfterLoad | ロードした後に再計算を禁止するかを指定 |
設定方法
オプションの設定方法を解説します。次のコードはスプレッドシートからデータを取り出す際、数式に関する情報を無視するように設定する例です。新しく作ったオブジェクト内で、JSONオプションにtrue
またはfalse
をセットすることでカスタマイズを指定します。(デフォルトの値はfalse
になります。)
// JSONオプションを指定します var jsonOptions = { // 数式を無視します ignoreFormula: true ignoreStyle: false rowHeadersAsFrozenColumns: false columnHeadersAsFrozenRows: false }; // スプレッドシートからデータを取り出します var jsonStr = Spread.toJSON(jsonOption);
サンプルによる動作確認
各オプションの違いを確認して頂く為にサンプルをご用意しました。画面の下にあるオプションを選択して「シリアル化/逆シリアル化の実行ボタン」をクリックすると、一つ目のスプレッドシート上のデータがJSONに変換され、二つ目のスプレッドシートに取り込まれます。実際に操作してお試しください。
補足説明
ロード後に再計算を行わない(doNotRecalculateAfterLoad)にfalseを指定すると、JSONデータの読み込み時に関数の再計算は行なわれません。そのまま関数と値だけを読み込むので、膨大な計算処理を含んだシートの場合に高速化できます。
いかがでしたでしょうか?今回のブログでJSONオプションの使い方をマスターして頂けたことと思います。機能の特徴を押さえて、便利に活用頂けたら幸いです。なお、弊社のWebサイトではSpreadJSの新機能をまとめたページをご用意しておりますので、併せてご覧ください!