ReoGrid One は、.NET 向けスプレッドシートコンポーネント ReoGrid をゼロから再設計した バージョン 5 系の製品名です。データモデルから描画まで作り直しており、V4 との後方互換性はありません。

何が変わったか
V4 の性能上限は実装の細部ではなく設計に由来していました(セル 1 個につき CLR オブジェクト 1 個、 密な行・列ヘッダー、セルごとのスタイルインスタンス)。V5 はデータモデルから作り直しています。
| V4 | V5(ReoGrid One) | |
|---|---|---|
| セルあたりメモリ | 約 150〜200 B | 約 16〜23 B。空セルはコストゼロ |
| セル値 | boxing された object | 16 バイトの構造体 CellValue +共有文字列プール |
| スタイル | 可変クラス + PlainStyleFlag ビットマスク | 不変 record StyleRecord +インターン。継承は セル ◁ 行 ◁ 列 ◁ シート |
| 描画・操作 | シート寸法に比例する処理が残る | 完全仮想化。処理量は可視範囲に比例 |
| モデルと UI | ReoGridControl が入口。モデルは UI と密結合 | Workbook / Worksheet は UI 非依存。コントロール無しで完結 |
| プラットフォーム分岐 | #if WINFORM / WPF | クラス構造で分離(IGridGraphics の実装差し替え) |
| 対応 TFM | net48 / net8 | .NET 10 以降のみ |
| 永続化 | RGF(XML)/BinaryFormatter | reogrid-json(Web 版と相互運用可能) |
1,048,576 行 × 16,384 列を実用速度で扱えます。
UI 非依存のコア
Workbook と Worksheet はコントロールに依存しません。フォームを作らずに、
サーバーやバッチ処理からそのまま使えます。
using unvell.ReoGrid.Core;
var workbook = new Workbook();
var sheet = workbook.AddWorksheet("Sheet1");
sheet.SetNumber(0, 0, 1200);
sheet.SetNumber(0, 1, 3);
sheet.SetFormula(0, 2, "A1*B1"); // 先頭の '=' は付けない
Console.WriteLine(sheet.GetDisplayText(0, 2)); // 3600
XLSX の読み書きと PDF 出力も UI に依存しないため、Linux / macOS 上のサーバーで動きます。 詳しくは ヘッドレスで使う を参照してください。
配布パッケージ
用途ごとに 1 パッケージ = 1 個の自己完結 DLL です。コアも数式エンジンも XLSX / PDF I/O も 含まれており、パッケージをまたいだ参照は必要ありません。
| パッケージ | 対象 | TFM |
|---|---|---|
unvell.ReoGrid.One | WinForms | net10.0-windows |
unvell.ReoGrid.One.Wpf | WPF | net10.0-windows |
unvell.ReoGrid.One.Avalonia | Avalonia(Windows / Linux / macOS) | net10.0 |
unvell.ReoGrid.One.Core | UI 無し(サーバー・バッチ) | net10.0 |
Avalonia 版のみ Avalonia パッケージを参照します(コントロールは利用側と同じ Avalonia に
バインドする必要があるため)。他の 3 つは依存パッケージがありません。
V4 からの移行
V5 は API 互換性を意図的に切っています。V4 の unvell.ReoGrid4 はバージョン 4.x で凍結され、
V5 は別のパッケージ ID で配信されます。同一 ID の 5.x にすると、バージョンを上げた瞬間に
ビルドが壊れるためです。
移行の手順は V4 からの移行ガイド、 API の対比は V4 との違い にまとめてあります。