reogrid-json の構造です。Web 版(reogrid-web)と共通の形式で、 未知のキーは黙って無視されます。
ドキュメント
{
"format": "reogrid-json",
"version": 1,
"styles": [ ... ],
"numberFormats": [ "#,##0", "yyyy/mm/dd" ],
"definedNames": [ ... ],
"workbook": { "activeSheet": 0, "sheets": [ ... ] }
}
| キー | 内容 |
|---|---|
format | 常に "reogrid-json" |
version | 現在 1 |
styles | スタイルのテーブル。セルは添字で参照する |
numberFormats | 書式コードのテーブル。同上 |
definedNames | 定義名 |
workbook | ワークブック本体 |
スタイルと数値書式をテーブルに集約しているため、同じ書式のセルが何万あっても ファイルサイズは増えません。
definedNames
{ "name": "SalesData", "scope": null, "address": "Sheet1!A2:C100" }
scope が null ならブックスコープ、シート名ならそのシートのスコープです。
ワークシート
{
"name": "Sheet1",
"rowCount": 1048576,
"columnCount": 16384,
"defaultRowHeight": 20,
"defaultColumnWidth": 80,
"rows": { ... },
"cols": { ... },
"cells": [ ... ],
"merges": [ ... ],
"borders": [ ... ],
"outlines": { ... },
"cellTypes": [ ... ],
"conditionalFormats": [ ... ],
"filter": { ... }
}
省略可能なキーは、内容が空なら出力されません。
cells
実在するセルだけが並びます。
{ "r": 0, "c": 0, "v": 1200, "f": "SUM(A1:A2)", "s": 3, "nf": 1, "rt": [ ... ] }
| キー | 内容 |
|---|---|
r / c | 行・列(0 始まり) |
v | 値 |
f | 数式(先頭の = を含まない) |
s | styles テーブルの添字 |
nf | numberFormats テーブルの添字 |
rt | リッチテキストのラン |
rt(リッチテキスト)
[ { "text": "合計 " },
{ "text": "12,800", "bold": true, "color": "#cc0000" } ]
キーは text / bold / italic / underline / fontFamily / fontSize / color。
cellTypes
範囲スコープで保存されます。
{ "r": 0, "c": 0, "rs": 1048576, "cs": 1, "config": { "type": "checkbox" } }
rs / cs は行数・列数です。config の中身は各セル型が
WriteConfig で書いたもの(カスタムセル型)。
outlines
{
"rows": [ [ { ... } ], [ { ... } ] ],
"columns": [ ... ],
"rowsSummaryBelow": true,
"columnsSummaryRight": true
}
rows / columns はネストレベルごとの配列です(添字 0 が最も外側)。
filter
{
"headerRow": 0,
"startColumn": 0,
"endColumn": 3,
"columns": [
{ "column": 1, "selectedValues": ["東京", "大阪"],
"condition": { "op": "greaterThan", "value": "1000" } }
]
}
設定と列ごとの選択値が往復します。行の非表示状態は読み込み時に再計算されます。
condition は V5 の拡張です(Web 版が読んだ場合は無視されます)。
色の表記
"#rrggbb" の形です。アルファは省略され、不透明として扱われます。
保存されないもの
スクロール位置・選択範囲・ウィンドウ枠の固定・表示倍率・元に戻す履歴。 いずれも実行時の状態です。