メモリワークブック

メモリワークブックの作成は、Excelファイルからの読み込み、ワークシートの内容の編集、新しいExcelファイルとしての保存を行うタスクに特に有用なオプションです。従来の画面コントロールの作成とは異なり、メモリワークブックは画面コントロールインスタンスなしで動作し、ビューポートコントローラーやマウス・キーボードコントローラーなどのインターフェースモジュールを持ちません。このため、画面コントロールベースの実装に比べて、大幅に高速かつ軽量です。

342 図:ブラウザからExcelまたはCSVファイルをアップロードし、データをデータベースに処理する。

343 図: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
    • ワークシートの作成と追加メソッド:CreateWorksheetAddWorksheet
    • ワークシートの挿入と削除メソッド:InsertWorksheetRemoveWorksheet
    • ワークシートのコピーと移動メソッド:CopyWorksheetMoveWorksheet
    • ワークシートの取得メソッド:GetWorksheetByNameGetWorksheetIndex
  • Worksheetsコレクション
    • ワークブック内のワークシートコレクションへのアクセス
  • 読み込みと保存の操作
    • テンプレートExcelファイルまたはRGFファイルの読み込みと保存機能
  • ワークブックイベント
    • すべてのワークブック関連イベントへのアクセス
  • 内部操作例外通知
    • 内部操作中に発生する例外の通知

利用できないAPI

メモリワークブックの特性上、一部のAPIはサポートされていません。

  • CurrentWorksheetプロパティ
    • メモリワークブックには複数のワークシートを切り替えるシートタブがないため、「現在アクティブなワークシート」の概念は適用されません。ワークシートは、ワークブックオブジェクトのWorksheetsコレクションプロパティ経由でアクセスする必要があります。
  • スクロールメソッドとイベント
    • メモリワークブックにはスクロールバーコンポーネントが含まれていません。
  • 外観スタイル
    • メモリワークブックには外観スタイルはありません。
  • UI関連メソッド
    • メモリワークブックにはグラフィックスオブジェクトがないため、テキスト、グラフィックス、その他のUI要素に関連するメソッドは利用できません。これには、グラフィカル情報を必要とするFitWidthToCellsFitHeightToCellsなどのメソッドが含まれます。
  • アクション関連メソッド
    • DoActionUndoRedoRepeatLastActionなどのアクション実行メソッドは利用できません。メモリワークブック上のすべての操作は即座に実行され、元に戻すことはできません。

Webアプリケーションでのメモリワークブックの活用

Webアプリケーションでは、ReoGridメモリワークブックは、Webクライアントからアップロードされたスプレッドシートデータの処理や、ダウンロード用のExcelファイルの生成に最適です。

344

例: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();
}

ページの内容は役に立ちましたか?