Razor PagesでExcelファイルを生成する方法
Razor Pagesは、ウェブページを構築するためのモダンなアプローチを提供します。 Razor Pagesでは、ウェブページをレンダリングするソースコードは、サーバー側のページによって生成されるのではなく、C#で記述されています。
Excelファイルを効率的に操作するためには、Microsoft Officeを必要とせず、複数の.NETバージョンをサポートするIronXLライブラリが、PowerPointファイルで注目されるPOI JavaプロジェクトのNPOIパッケージやOffice Interopなどよりも推奨されます。IronXLは豊富な機能を備え、使いやすいライブラリです。
この記事では、Razor PagesでIronXL C#ライブラリを使用して、ダミーデータと行見出しを含むExcelスプレッドシートを生成およびエクスポートする方法を示します。
Razor PagesでExcelファイルを生成する方法
- Razor で Excel ファイルを生成するための C# ライブラリをインストールする
- メソッド内でExcelファイルにアクセスしたり新規作成する
- RazorのWorkBookオブジェクトにデータとスタイルを追加する
- ボタンが押されたときに Excel ファイルを自動的にダウンロードするには、File メソッドを使用します。
- 生成されたExcelファイルを検査する
IronXL: C# Excelライブラリ
IronXLは、大量のデータセットを並列処理で操作するためのメソッドと関数を提供するC# Excelライブラリです。 内部動作を理解する必要がなく、XLSとXLSXファイルの両方をサポートしているため、ユーザーフレンドリーです。
IronXLは、Microsoft OfficeをインストールすることなくExcelの式やオフィス文書をインポート、エクスポート、作成するのに最適です。
IronXLを使用してRazor PagesでExcelファイルをインポートおよびエクスポートする方法を学びましょう。
Razor PagesでExcelファイルを生成
Razor PagesでExcelシートを作成するには、Visual Studioを開き、ASP.NET Core Webアプリケーションを作成し、IronXLをインストールします。
前提条件
Razor PagesでExcelファイルを作成するためのセットアップ要件:
- Visual Studio(最新バージョン)
- .NET Framework 6または7
- Visual Studioでの.NET Core Webアプリケーション
IronXLライブラリのインストール
NuGetパッケージマネージャーコンソールを使用してIronXLをインストール。 .NET Core Webアプリケーションにライブラリをインストールするためにこのコマンドを入力:
Install-Package IronXL.Excel
Excelファイル生成のためのコード
コードの書き方です。 "Index.cs"をPagesフォルダーで開き、次のメソッドを追加:
public FileResult OnPostExport()
{
// Create a new WorkBook with XLSX format
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
// Create a new WorkSheet named "data"
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add headers to the new worksheet
workSheet["A1"].Value = "Product EN";
workSheet["B1"].Value = "SKU";
workSheet["C1"].Value = "Customer";
// Make header text bold
workSheet["A1:C1"].Style.Font.Bold = true;
// Add dummy data to the worksheet
workSheet["A2"].Value = "Iron Rods";
workSheet["A3"].Value = "Mobile Phones";
workSheet["A4"].Value = "Chargers";
workSheet["B2"].Value = "105";
workSheet["B3"].Value = "285";
workSheet["B4"].Value = "301";
workSheet["C2"].Value = "Adam";
workSheet["C3"].Value = "Ellen";
workSheet["C4"].Value = "Tom";
// Convert the WorkBook to a byte array Stream for download
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}public FileResult OnPostExport()
{
// Create a new WorkBook with XLSX format
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
// Create a new WorkSheet named "data"
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add headers to the new worksheet
workSheet["A1"].Value = "Product EN";
workSheet["B1"].Value = "SKU";
workSheet["C1"].Value = "Customer";
// Make header text bold
workSheet["A1:C1"].Style.Font.Bold = true;
// Add dummy data to the worksheet
workSheet["A2"].Value = "Iron Rods";
workSheet["A3"].Value = "Mobile Phones";
workSheet["A4"].Value = "Chargers";
workSheet["B2"].Value = "105";
workSheet["B3"].Value = "285";
workSheet["B4"].Value = "301";
workSheet["C2"].Value = "Adam";
workSheet["C3"].Value = "Ellen";
workSheet["C4"].Value = "Tom";
// Convert the WorkBook to a byte array Stream for download
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}このコードでは、新しいExcel WorkBook が作成され、1つの WorkSheet を含みます。 シートはダミーデータで埋められ、生成されたファイルは以下の方法でサーバーに応答されます:
WorkBookはStreamに変換され、ファイルとしてダウンロードします。- MIMEタイプが設定されます。
- ファイルダウンロードの名前が指定されます。
Excelファイルをダウンロードするボタンを作成
"Index.cshtml"の既存のコードを次のもので置き換えます:
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">IronXL Generate Excel File</h1>
<p class="m-5">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
<form method="post" asp-page-handler="Export">
<button class="btn btn-success p-3">Generate Excel File!</button>
</form>
</div>@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">IronXL Generate Excel File</h1>
<p class="m-5">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
<form method="post" asp-page-handler="Export">
<button class="btn btn-success p-3">Generate Excel File!</button>
</form>
</div>このHTMLは、asp-page-handler が "Export" に設定されたフォームを作成します。これにより、ユーザーが "Generate Excel File!" ボタンをクリックしてブラウザダウンロードをトリガーすると、アプリケーションはExcelファイルをローカルマシンにエクスポートできます。
プロジェクトの実行
プロジェクトを実行すると、ブラウザに画面が表示されます。 緑のボタンをクリックして、Excelファイルをダウンロードします。
IronXL Excelシート生成
"Generate Excel File!" をクリックした後、ファイルがダウンロードされます。
IronXLダウンロードファイル
生成されたExcelファイルを開く
生成されたExcelファイルの内容は、コードの出力と完璧に一致しています。 生成されたExcelファイルのスナップショットは以下に表示されます。
IronXL生成ファイル
IronXLは競合製品よりも優れている
IronXLは、NPOIのような制限なしにXLSとXLSXフォーマットでの作業に優れています。NPOIはJavaベースであるために遅いですが、IronXLはC#です。 ASP.NET Coreアプリケーションで大量もしくは複数のスプレッドシートを生成する際は、POIではなくIronXLを選択してください。
IronXLはMicrosoft Officeを必要とせずにExcelファイルを作成および編集できます。Microsoft Interopとは異なり、IronXLはExcel操作やエクスポートのためにMicrosoft ExcelのActiveXを呼び出す必要はありません。 それはまた、CSVファイルをExcelフォーマットにエクスポートすることも可能です。
IronXLは、人気のあるフォーマット間の変換、数式の挿入、グラフの追加、画像の挿入など、Excelファイルとのやり取りに関する幅広い機能を提供します。
結論
この記事は、Microsoft Excel ActiveXを必要とせずにRazor PagesでExcelファイルを生成し、ファイルダウンロードを容易にするためのIronXLの使用方法を紹介します。
Excelファイルを作成するその他のチュートリアルをもっと見る。
IronXLは非商用開発において無料です。 市販テストのための無料トライアルが利用可能です。 料金プランを見て、さらに詳しい価格とライセンスの情報をご覧ください。
よくある質問
Interopを使用せずにRazor PagesでExcelファイルを生成するにはどうすれば良いですか?
Interopを使用せずにRazor PagesでExcelファイルを生成するには、IronXLライブラリを利用できます。このライブラリを使用すると、Microsoft Officeが不要で、C#で直接Excelファイルを作成および操作できます。WorkBookを作成し、WorkSheetにデータを追加します。
Razor PagesプロジェクトにIronXLをインストールするために必要なステップは何ですか?
Razor PagesプロジェクトにIronXLをインストールするには、Visual StudioのNuGetパッケージマネージャーコンソールを使用できます。Install-Package IronXL.Excelコマンドを実行して、プロジェクトにライブラリを追加します。
IronXLを使用してRazor Pagesアプリケーションからデータをエクスポートすることはできますか?
はい、IronXLはRazor Pagesアプリケーションからデータをエクスポートするために使用できます。データをExcel形式に変換し、そのデータをRazor Pagesを使用してクライアントにダウンロード可能ファイルとしてストリーミングできます。
Excelファイルを生成するためにIronXLをMicrosoft Interopよりも使用する利点は何ですか?
IronXLは、Microsoft Interopと比較して、より高速なパフォーマンス、Microsoft Officeのインストール不要、および並列処理を通じた大規模データセットの効率的な処理が可能であることなどの利点を提供します。
Razor PagesでIronXLを使用して大規模なExcelデータセットを処理することは可能ですか?
はい、IronXLは大規模なExcelデータセットを効率的に処理できます。並列処理をサポートしているため、広範なデータを扱う際のパフォーマンスと速度を向上させることができます。
IronXLは異なるExcelファイル形式をサポートしていますか?
IronXLはXLSおよびXLSXファイル形式の両方をサポートし、データのインポート、エクスポート、およびフォーマットを含む包括的なExcelファイル操作を可能にします。
開発でIronXLを無料で使用するオプションはありますか?
IronXLは非商業的な開発に対して無料で利用可能です。商業利用に関しては、さまざまな価格プランが用意されており、試用版も製品テストのために提供されています。
Razor PagesでIronXLを使用してExcelファイルのダウンロードをトリガーするにはどうすればよいですか?
Razor PagesでIronXLを使用してExcelファイルのダウンロードをトリガーするには、WorkBookを作成し、データで満たした後、バイト配列に変換します。このバイト配列をRazor PagesのFileメソッドを使ってユーザーにダウンロード可能なファイルとしてストリーミングします。
IronXLがNPOIのような他のライブラリより好まれる理由は何ですか?
IronXLは、ネイティブのC#実装であるため、NPOIのようなライブラリよりしばしば好まれます。これは、より高速なパフォーマンス、使いやすさ、Javaコンポーネントへの依存がないことを提供し、ASP.NET Coreアプリケーションに理想的です。








