ReoGridは、.NETアプリ用のスプレッドシートコンポーネントです。Excelを依存せず、DLLひとつでアプリにExcel同様の機能をもたせることができます。
今回は、ReoGridを使って、数十万行規模の大規模データを超高速に画面に読み込み、表示する方法を紹介します。
動画デモ 👉 https://youtu.be/PospG1jddFw
ReoGridの新バージョン4には、「遅延ロード(Lazy Loading)」という新しい技術を採用しています。
遅延ロードは、最初から全てのデータを一気に読み込むのではなく、必要に応じて最小限の一部分ずつを読み込んでいきます。
従来の方法では、すべてのデータを最初に一括で読み込むため、メモリ負荷が高く、表示までに時間がかかっていました。これに対し遅延ロードでは、必要になった部分のみを都度読み込むため、初期表示が圧倒的に高速になります。
他のグリッドコンポーネントにも、仮想モードなど類似の手法がありますが、開発者自身がその制御を実装し、管理しなければなりません。--- Unknown node: hardBreak ---しかしReoGridでは、セルがいつ読み込まれるかを内部でスマートに管理しています。スクロールやズームをしたり、ワークシートの表示領域が変化した場合に、ReoGridは自動的に必要なセルを読み込みます。
さらに、数式で参照されたセル、アプリで引用するセルも含めて、あらゆるパターンでセルを管理し、必要に応じて読み込み処理を行います。--- Unknown node: hardBreak ---この高度な技術によって、ReoGrid のバージョン4では大規模なデータでもストレスなく、超高速に読み込み、表示することができます。

上述のように、セルの状態管理はReoGrid バージョン4が自動的に行うため、アプリ側はデータの準備を行うだけです。
まずReoGridのデータ読み込みインターフェイス、DataSourceを作成し、ご自身のデータをそのインターフェイスを通してReoGridに渡すように実装します。
private void button1_Click(object sender, EventArgs e)
{
// ワークシートの行数を変更
worksheet.SetRows(logs.Count);
// データソースを遅延読み込みモードで設定
worksheet.AddDataSource(
new RangePosition(0, 0, logs.Count, COLUMN_COUNT),
new FlightLogDataSource(logs),
// 遅延ロードを有効化
DataSourceLoadMode.LazyLoading);
}
このように、データソースの読み込み方式を遅延ロード(DataSourceLoadMode.LazyLoading)に指定するだけで完成です。
データだけではなく、DataSourceのインターフェイスの中では、罫線やセル書式などの適用も実装できます。これにより、ワークシートの初期化がさらに高速化でき、よりスムーズなアプリの体験を実装できます。--- Unknown node: hardBreak ---以下のサンプルコードでは、すべてのセルの罫線を設定する例です。
public class FlightLogDataSource : IDataSource<FlightlogDataRecord>
{
...
// GetRecord の部分を以下のように変更
public FlightlogDataRecord GetRecord(int row)
{
FlightlogDataRecord record = initedRecords[row];
if (record == null)
{
record = new FlightlogDataRecord(this, row, Logs[row]);
initedRecords[row] = record;
// 行が初めてアクセスされたときに、行の罫線を設定
Worksheet.SetRangeBorders(row, 0, 1, ColumnCount, BorderPositions.Outside, RangeBorderStyle.BlackSolid);
Worksheet.SetRangeBorders(row, 0, 1, ColumnCount, BorderPositions.InsideVertical, RangeBorderStyle.GrayDotted);
}
// 行データを返却
return record;
}
...
}
ReoGridの公式サイトでは、より詳しいドキュメントとサンプルコードを掲載しています。詳しくはドキュメントページをご参照ください。
ReoGridはこれまで、国内・海外の企業の様々なシステムで採用されています。特に金融システムや製造業、公共インフラシステムといった、日常的に大量のデータを取り扱うシステムへの導入実績が数多くあります。--- Unknown node: hardBreak ---ReoGrid バージョン4は、これら分野への導入・運用で得られた経験に加えてユーザー様からの声を反映した、性能・機能ともに大幅に進化した最新バージョンです。
ReoGrid バージョン4のリリース以降、すでに複数の企業に導入していただき、高速化、安定性、使いやすさの面で高い評価をいただいています。--- Unknown node: hardBreak ---今後もさらなる高性能化を目指し継続的な改善を続けるとともに、信頼性の高いサポートを提供してまいります。
▼ReoGridの詳細・ご購入はこちらから