GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の最新情報をお届けします。製品のTIPSや発売情報、イベントのお知らせなどをいち早く発信中です。

SpreadJS新機能 | JSONオプションの使い方

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の新機能をまとめたページをご用意しておりますので、併せてご覧ください!