メモリワークブックの作成は、Excelファイルからの読み込み、ワークシートの内容の編集、新しいExcelファイルとしての保存を行うタスクに特に有用なオプションです。従来の画面コントロールの作成とは異なり、メモリワークブックは画面コントロールインスタンスなしで動作し、ビューポートコントローラーやマウス・キーボードコントローラーなどのインターフェースモジュールを持ちません。このため、画面コントロールベースの実装に比べて、大幅に高速かつ軽量です。
図:ブラウザからExcelまたはCSVファイルをアップロードし、データをデータベースに処理する。
図:ASP.NETフォームページで生成されたExcelまたはCSVファイルをダウンロードする。
メモリワークブックを初期化するには、以下の構文を使用します。
var workbook = ReoGridControl.CreateMemoryWorkbook();
ワークブックをダウンロードストリームにExcelファイルとして保存するには:
workbook.Save(Response.OutputStream, unvell.ReoGrid.IO.FileFormat.Excel2007);
メモリワークブックにExcelファイルを読み込むには、以下のコードスニペットを使用します。
workbook.Load(@"C:\MyTemplate.xlsx", FileFormat.Excel2007);
利用可能なAPI
Excelファイルの読み込みと保存のAPI、およびワークシート内のデータやスタイルにアクセスするすべてのメソッドは、画面コンポーネントで使用されるものと一貫しています。
- ワークシート管理API
- ワークシートの作成と追加メソッド:
CreateWorksheet、AddWorksheet - ワークシートの挿入と削除メソッド:
InsertWorksheet、RemoveWorksheet - ワークシートのコピーと移動メソッド:
CopyWorksheet、MoveWorksheet - ワークシートの取得メソッド:
GetWorksheetByName、GetWorksheetIndex
- ワークシートの作成と追加メソッド:
Worksheetsコレクション- ワークブック内のワークシートコレクションへのアクセス
- 読み込みと保存の操作
- テンプレートExcelファイルまたはRGFファイルの読み込みと保存機能
- ワークブックイベント
- すべてのワークブック関連イベントへのアクセス
- 内部操作例外通知
- 内部操作中に発生する例外の通知
利用できないAPI
メモリワークブックの特性上、一部のAPIはサポートされていません。
CurrentWorksheetプロパティ- メモリワークブックには複数のワークシートを切り替えるシートタブがないため、「現在アクティブなワークシート」の概念は適用されません。ワークシートは、ワークブックオブジェクトの
Worksheetsコレクションプロパティ経由でアクセスする必要があります。
- メモリワークブックには複数のワークシートを切り替えるシートタブがないため、「現在アクティブなワークシート」の概念は適用されません。ワークシートは、ワークブックオブジェクトの
- スクロールメソッドとイベント
- メモリワークブックにはスクロールバーコンポーネントが含まれていません。
- 外観スタイル
- メモリワークブックには外観スタイルはありません。
- UI関連メソッド
- メモリワークブックにはグラフィックスオブジェクトがないため、テキスト、グラフィックス、その他のUI要素に関連するメソッドは利用できません。これには、グラフィカル情報を必要とする
FitWidthToCellsやFitHeightToCellsなどのメソッドが含まれます。
- メモリワークブックにはグラフィックスオブジェクトがないため、テキスト、グラフィックス、その他のUI要素に関連するメソッドは利用できません。これには、グラフィカル情報を必要とする
- アクション関連メソッド
DoAction、Undo、Redo、RepeatLastActionなどのアクション実行メソッドは利用できません。メモリワークブック上のすべての操作は即座に実行され、元に戻すことはできません。
Webアプリケーションでのメモリワークブックの活用
Webアプリケーションでは、ReoGridメモリワークブックは、Webクライアントからアップロードされたスプレッドシートデータの処理や、ダウンロード用のExcelファイルの生成に最適です。

例:Excelファイルの作成とダウンロード
ASP.NETアプリケーションでは、以下のコードスニペットをページクラス内に実装して、Excelファイルを生成し、ユーザーにダウンロードを促すことができます。
protected void Page_Load(object sender, EventArgs e)
{
// Create an instance of a memory workbook
var grid = ReoGridControl.CreateMemoryWorkbook();
// Access the first worksheet by default (a new workbook includes one empty worksheet)
var sheet1 = grid.Worksheets[0];
// Populate cell A1 with text
sheet1["A1"] = "Hello World";
// Populate cells A2 to E2 with data and formulas
sheet1["A2"] = new object[] {
10, // A2
20, // B2
"=A2+B2", // C2
"=SUM(A2:C2)", // D2
};
// Prepare the response for file download
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", "attachment; filename=SampleData.xlsx");
// Save the workbook to the response stream in Excel 2007 format
grid.Save(Response.OutputStream, unvell.ReoGrid.IO.FileFormat.Excel2007);
// Flush the response stream and end the response
Response.Flush();
Response.End();
}