Ver.4 新機能
ReoGrid V4は、遅延ロードによる超高速データ読み込み、複数行ヘッダー、WPF対応の強化など、多数の新機能と改良を搭載した大幅なアップデートです。描画や検索、アウトライン、条件付きスタイルの機能向上に加え、Excel互換の書式対応や柔軟なデータ連携、0行・0列対応など、業務用途に求められる高度なニーズに応える内容となっています。商用ライセンス制に移行し、技術サポートも強化されました。
1. 超高速のデータ読み込み
ReoGrid V4では、新たに遅延ロード(Lazy Loading)機能に対応しました。
この機能を利用することで、初期表示時には必要最低限のセルデータのみをロードし、スクロールや表示更新のタイミングで実際のデータを順次読み込むようになります。
これにより、大量のデータを持つシートでも、初期ロードが非常に高速になり、ユーザー体験の向上につながります。
例えば、100万行のデータでも、数百ミリ秒で画面描画を開始できるため、業務用アプリケーションなどでの実用性が大幅に向上します。
以下は遅延ロードを有効にしたデータソース設定の例です。
// ワークシートの行数を設定(例:100万行)
worksheet.SetRows(1000000);
// データソースを遅延読み込みモードで設定
worksheet.AddDataSource(
new RangePosition(0, 0, 1000000, 10), // 範囲指定(行×列)
new MyDataSource(logs), // 独自データソースのインスタンス
DataSourceLoadMode.LazyLoading // 遅延ロードを指定
);
詳細について、こちらをご参照ください。
2. 複数行ヘッダーの対応
列ヘッダーに複数行を指定できるようになり、セルの結合にも対応しました。
これにより、カテゴリ分類や複雑な見出しを表現したい場合でも、より柔軟で高機能なヘッダー構成が可能です。
たとえば、2行目と3行目の列を結合し、「大分類」などの名称を配置することで、視認性の高いヘッダーを構築できます。
以下は複数行ヘッダーとセル結合の設定例です。
var extensionHeader = worksheet.ExtensionColumnHeader;
extensionHeader.SetRowCount(3);
extensionHeader.MergeCells(0, 1, 2, 1); // 0行1列から縦に2行分を結合
extensionHeader[0, 1].Text = "大分類";
3. WPF版を大幅に強化
ReoGrid V3では、WPF版において一部の機能が未対応であり、たとえばドロップダウンリストなどのUI機能が使用できないという制限がありました。
ReoGrid V4ではこの制限が大きく改善され、ドロップダウンリストをはじめ、Windows Forms 版で利用できた主要機能のほぼすべてを WPF 版にも対応させました。 これにより、WPF を採用しているアプリケーションにおいても、ReoGrid の全機能を活用できるようになります。
また、WPF版においても描画速度や動作の安定性が向上しており、Windows Forms 版と同等のパフォーマンスと操作性を実現しています。
4. データソースの仕組み
ReoGrid V4では、ワークシートに対して柔軟なデータ入力を可能にするデータソース機能が導入されました。 この仕組みにより、外部データベースやファイル、APIなどから取得したデータを、独自の構造でワークシートに連携・表示させることができます。
特に IDataSource<T>
インターフェイスを実装することで、任意のデータ型や構造に対応したカスタムデータソースを作成でき、ReoGrid の表示部分に効率的にバインドできます。
以下は、カスタムデータソースの定義とワークシートへの追加例です。
public class MyDataSource : IDataSource<IDataRecord>
{
private object[,] data;
...
}
...
var ds = new MyDataSource();
// データソースをワークシートに追加、A1:G30 は格納先の範囲アドレス
sheet.AddDataSource("A1:G30", ds);
5. DropdownListCell の強化
ReoGrid V4では、セルにリストから選択できるドロップダウンリストセルの機能がさらに強化されました。 これまでの静的なリスト指定に加え、ワークシート上のセル範囲を候補として指定できるようになったことで、より動的かつ柔軟なリスト選択を実現できます。
これにより、たとえばマスターデータや外部入力値を使ったリアルタイムな選択肢の提供が可能になり、ユーザー入力の効率性と整合性を高めます。
以下は、ワークシート上の範囲を使ってドロップダウンリストセルを作成する例です。
// 候補値を定義した範囲を指定(例:G1~G3000)
var myRange = sheet1.Ranges["G1:G3000"];
// 上記範囲を使用してドロップダウンリストセルを作成
var dropdownList1 = new DropdownListCell(myRange);
// 必要に応じてセルまたはセル範囲に適用
sheet1.Cells["A1"].Body = dropdownList1;
6. Excel のカスタマイズ書式パターンに対応
ReoGrid V4では、Excel と互換性のあるカスタム書式文字列に対応しました。 これにより、数値や通貨、日付の表示形式を Excel と同じように柔軟に設定でき、より自然で直感的な表現が可能になっています。
書式文字列は、たとえば「正数」「負数」「ゼロ値」「テキスト」を1つのパターン内でそれぞれ指定でき、色や区切り記号も含めて表現することができます。
以下は、負の数を赤で表示する数値書式を設定した例です。
cell1.DataFormat = CellDataFormatFlag.Number;
cell1.DataFormatArgs = "#,##0;[Red]-#,##0"; // Excel形式の書式文字列を指定
7. アウトラインの強化
ReoGrid V4では、アウトライン(グループ化)機能がさらに強化されました。 これにより、展開・折りたたみボタンの表示位置を、ユーザーの好みに応じて上または下に切り替えることができるようになりました。
従来は表示位置が固定されていましたが、V4ではシート単位での設定が可能となり、Excel など他のツールとの表示互換性を高めたり、業務仕様に沿った柔軟なUI構成が実現できます。
以下のように、展開ボタンの表示位置を指定できます:
// 集約行(展開ボタン)を上に指定
sheet.OutlineButtonLocation = OutlineButtonLocation.Top;
// 集約行(展開ボタン)を下に指定
sheet.OutlineButtonLocation = OutlineButtonLocation.Bottom;
さらに、アウトライン制御用のAPIも強化され、プログラムからの制御がより簡潔かつ柔軟になりました。 アウトラインのレベル(1, 2, 3と表示されるグループ階層)に対して、以下のような操作が可能です:
// 一番外側のアウトライングループ(行方向)を取得
var outlineGroup = sheet.GetOutlineGroup(RowOrColumn.Row, 0);
// グループをすべて折りたたむ
outlineGroup.CollapseAll();
// グループをすべて展開する
outlineGroup.ExpandAll();
8. カスタマイズ条件フィルター
ReoGrid V4では、プログラムによって柔軟な条件フィルターを構築できる機能が追加されました。 従来の単純な条件分岐に加え、複数の条件を自由に組み合わせて、ワークシート上のデータを強力にフィルタリングできます。
たとえば「特定の列の値が ‘USD’ ではない行のみを表示する」といった条件を動的に構成し、即座に適用することが可能です。 これにより、エンドユーザーに対して柔軟かつ高度な検索・集計機能を提供することができます。
以下はその実装例です:
// 条件フィルターを作成
var filter = new ConditionalDataFilter();
// 通貨 != USD 条件を作成(例:2列目が対象)
var condition = new FilterCondition(2, ConditionOperator.NotEquals, "USD");
// 条件リストに追加
filter.Conditions.Add(condition);
// フィルターを適用(A1:G30 が対象範囲)
sheet.DoFilter("A1:G30", filter);
このように、コードから条件を定義・適用することで、業務ロジックやユーザー操作に応じた柔軟なフィルタリングが実現できます。
9. 条件付きスタイルの対応
ReoGrid V4では、セルの値に応じて自動的にスタイルを変更する条件付きスタイル機能が追加されました。 数式を用いた柔軟な条件判定によって、特定の値や範囲に一致したセルに対して、色やフォントなどのスタイルを自動で適用できます。
これにより、データの傾向や異常値を視覚的に把握しやすくなり、帳票や分析ツールとしての視認性と使い勝手が大幅に向上します。
以下は、セルの値が1000より大きい場合に文字色を黄色にする条件付きスタイルの例です。
var rule1 = new Rule("THIS > 1000", "A1:Z30", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.TextColor,
TextColor = SolidColor.Yellow,
});
sheet.ConditionalStyles.Add(rule1);
THIS
は現在セルの値を参照する予約語で、他にも複雑な数式や論理条件を指定することができます。
条件付きスタイルは複数同時に適用することも可能で、より高度な可視化ニーズにも対応できます。
10. 文字列の検索機能を追加
ReoGrid V4では、ワークブック全体を対象とした文字列検索機能が強化され、より使いやすく、インタラクティブな検索体験を提供します。
ユーザーが入力したキーワードに一致するセルを検索し、自動的にハイライト表示したり、前後の一致箇所へジャンプすることができます。大量のデータから素早く目的の情報にアクセスするために非常に便利な機能です。
以下は、検索セッションの作成と検索結果のハイライト、および一致箇所への移動を行うコード例です:
// 検索セッションを作成
var searchSession = new HighlightTextSearchSession(Workbook, txtKeyword.Text, Workbook.CurrentWorksheet);
searchSession.Search();
// 一致セルをすべてハイライト
searchSession.MarkAllResultHighlight(SolidColor.Goldenrod);
// 次・前の一致セルへフォーカスを移動
searchSession.NextMatch();
searchSession.PreviousMatch();
検索セッションは再利用可能な構造となっており、インクリメンタル検索やリアルタイムハイライトといった応用にも対応可能です。
11. セルロック機能の強化
ReoGrid V4では、セルのロック機能が強化され、シート全体・範囲・個別セルという3段階のロック指定に対応しました。 これにより、入力可能なセルと編集禁止にしたいセルを柔軟に制御することができ、業務用フォームや申請書など、入力制御が求められるアプリケーションに最適です。
例えば、C5セルのみを編集可能にし、それ以外はすべてロックするには以下のように指定します。
// すべてのセルをロック状態に設定
sheet.IsLocked = true;
// C5セルだけロック解除
sheet.Cells["C5"].IsLocked = CellLock.UnLocked;
逆に、すべてのセルは編集可能とし、C5セルだけをロックしたい場合は以下のように設定できます。
// デフォルトではロックしない
sheet.IsLocked = false;
// C5セルのみをロック
sheet.Cells["C5"].IsLocked = CellLock.Locked;
このように、「全体ロック + 個別アンロック」または「全体アンロック + 個別ロック」といった柔軟な制御が可能です。 ユーザー操作の制限や、データ保護の用途に効果的です。
12. ワークシートのデータを 0列・0行に対応
ReoGrid V4では、行数や列数が0の状態に対応可能となり、これまで以上に柔軟なシート構成が可能になりました。 従来の ReoGrid V3 では、最低でも1セルが存在している必要があり、データが存在しない状態の表現が困難でした。
V4ではこの制限が撤廃され、完全に空のワークシート(0行×0列)の状態でも正常に動作・表示できるようになりました。 これにより、初期状態で空のシートを提供し、ユーザーの操作に応じて行や列を動的に追加していくようなインタラクティブなUI設計が可能となります。
以下は、行数を0に設定するコード例です:
worksheet.SetRows(0)
13. 描画のさらなる高速化
従来の ReoGrid V3 でも、可視領域のみに限定した描画によるパフォーマンス最適化が行われていましたが、 V4ではこの描画処理をさらに見直し・最適化することで、より高速な描画が可能となりました。
とくに、次のような改良が施されています:
- 可視領域の判定精度を改善し、無駄な描画を一切行わない
- 描画対象セルの更新判断をより高速に処理
- スクロール・選択・編集といったインタラクションに対する描画遅延の最小化
これにより、数千〜数百万行規模のデータを扱うシートでも、スクロールや入力操作がより滑らかになり、操作応答性が格段に向上しました。
14. 浮動小数点型の計算精度補正
ReoGrid V4では、浮動小数点演算に起因する微小な誤差を自動的に吸収する補正機能が追加されました。 これにより、計算結果として「3.00000000000004」のような人間にとって違和感のある数値が表示されることを防ぎ、より直感的で実用的な計算結果を得ることができます。
この補正は、特に合計や小数演算を多用する業務用途において、出力結果の信頼性と可読性を向上させます。
以下は補正を有効にする設定例です:
// 計算精度補正を有効にする
sheet.Options.FormulaCalculationPrecision = FormulaCalculationPrecision.LowPrecision;
// 補正の閾値(イプシロン)を調整することも可能
FormulaExtension.FormulaCalculationEplison = 0.0000001f;
15. WinAppDriver を介した自動テスト対応
ReoGrid V4 は、Windows アプリケーションの自動 UI テストツール「WinAppDriver」 に正式対応しました。 これにより、UI 操作の自動化やリグレッションテストを、コードベースで効率よく実行できるようになります。
Visual Studio や Appium、Selenium などと組み合わせることで、ReoGrid を使用したアプリケーションの検証や品質管理を自動化し、保守性と信頼性を大きく向上させることが可能です。
以下のコードで ReoGrid の UI オートメーションを有効にします:
ReoGridControl.EnableUIAutomation = true;
テストコードの一例(WinAppDriver セッション内で ReoGrid を操作):
var reoGridControl = session.FindElementByClassName("ReoGridControl");
if (reoGridControl != null)
{
reoGridControl.Click(); // get focus
var worksheet = reoGridControl.FindElementByName("DefaultWorksheet");
if (worksheet != null)
{
... // テストを実行
}
...
}
ReoGrid の UI 要素には自動テスト用の識別名(AutomationId)も設定可能で、より安定したテストスクリプトの作成が可能です。 手動操作の再現やUI変更の検知にも有効で、大規模なアプリケーション開発において非常に有用な機能です。
16. より多くの数式が利用可能に
ReoGrid V4では、対応する関数・数式の種類が拡充されました。 これにより、より複雑で実用的な計算ロジックをワークシート上で直接記述・実行できるようになり、Excel に近い表現力を持つスプレッドシート操作が可能になります。
配布形態について
ReoGrid V4 は、従来提供していた無料版の配布を終了し、有償ライセンス製品として提供される形式に変更されました。
これに伴い、V4では以下の2つのエディションをご用意しています:
- Professional 版:基本的な商用利用を想定したライセンス。利用可能端末数は3以下で、1ヶ月間の技術サポート付き。
- Enterprise 版:長期的・大規模開発を支援するライセンス。利用可能端末数は無制限。3ヶ月間の技術サポート付き。
なお、機能面の違いはなく、どちらも同じ ReoGrid V4 の機能をご利用いただけます。サポート期間と導入規模に応じてお選びください。
また、ReoGrid V3 は引き続き オープンソース(MITライセンス) として提供され、継続的な開発とメンテナンスを行っていく方針です。
ライセンス形式の変更
ReoGrid V3 までは MIT ライセンスのオープンソースソフトウェアとして提供されていましたが、 ReoGrid V4 からはクローズドソースの商用ソフトウェアとして提供される形に変更されました。
これに伴い、V4 をご利用いただくには、ライセンスの購入が必要です。 ご購入いただいたユーザーには、利用可能な範囲を定めた使用ライセンスが付与されます。
ライセンスに関する詳細な条件については、利用規約(V4) をご参照ください。
サポートサービスについて
ReoGrid V4では、開発者や企業向けに有償のサポートサービスをご提供しています。 サポートは用途に応じて2種類あり、それぞれサブスクリプション(月額制)でご利用いただけます。
技術サポート(月額 税抜 10万円)
主にReoGridの利用方法に関する支援を行う基本的なサポートプランです。 以下の内容を含みます:
- 使い方のご相談、導入支援
- サンプルコードの提示
- 不具合・障害の切り分けと対処方法のご案内
日々の開発でReoGridをスムーズに利用したい方に最適なサービスです。
開発支援サポート(月額 税抜 30万円)
お客様のプロジェクトに合わせて、より深いレベルでReoGridを活用・拡張したい方向けのサポートです。 以下のような内容に対応します:
- ReoGridの実装方針や設計方法のご提案
- ReoGrid本体のカスタマイズ・機能拡張
- 特定の.NET環境(.NET 6, 8, Core など)への対応や移植支援
- 長期運用を前提とした技術的なレビュー・助言
パートナーとしての継続的な支援をご希望の企業様におすすめです。