reogrid-json は V5 のネイティブ保存形式です。V4 の RGF(XML)と BinaryFormatter は廃止されました。
Web 版(reogrid-web / ReoGrid Studio)と同じ形式であり、双方向にファイルをやり取りできます。
読み書き
using unvell.ReoGrid.Core.IO;
string json = ReoGridJsonIO.Write(wb, pretty: true);
File.WriteAllText("book.rgjson", json);
Workbook restored = ReoGridJsonIO.Read(File.ReadAllText("book.rgjson"));
pretty: true は人が読める整形を行います。既定は圧縮された 1 行です。
保存されるもの
| 対象 | キー |
|---|---|
| セル値・数式・スタイル参照・数値書式参照・リッチテキスト | cells |
| スタイルのテーブル(インターン済み) | styles |
| 数値書式のテーブル | numberFormats |
| 定義名 | definedNames |
| 行・列のサイズ・非表示・スタイル | rows / cols |
| 結合 | merges |
| 罫線 | borders |
| アウトライン | outlines |
| セル型 | cellTypes |
| 条件付き書式 | conditionalFormats |
| オートフィルタ | filter |
保存されないもの
画像は保存されません。 画像を残す必要がある場合は XLSX をお使いください。
ビューの状態は保存されません。
- スクロール位置・選択範囲
- ウィンドウ枠の固定・表示倍率
- 元に戻す履歴
構造
{
"format": "reogrid-json",
"version": 1,
"styles": [ ... ],
"numberFormats": [ ... ],
"definedNames": [ { "name": "...", "scope": null, "address": "Sheet1!A1" } ],
"workbook": {
"activeSheet": 0,
"sheets": [ { "name": "Sheet1", "cells": [ ... ], ... } ]
}
}
セルは実在するものだけが cells に並びます。空セルは出力されません。
スタイルと数値書式はテーブルに集約され、セル側は添字(s / nf)で参照します。
同じ書式のセルが何万あってもファイルサイズは増えません。
詳細は reogrid-json スキーマ を参照してください。
Web 版との相互運用
同じ形式なので、次のような使い方ができます。
- デスクトップアプリで作成 → サーバーへ送信 → ブラウザで表示
- Web で編集 → ダウンロード → デスクトップで開く
未知のキーは黙って無視されます。片方が新しい機能を追加しても、古い実装が読めなくなることはありません。
V4 からの移行
RGF は読み込めません。V4 の資産を V5 へ持ち込む経路は次のとおりです。
V4 で XLSX として保存 → V5 の XlsxReader.Read() で読み込み