Blazor IronXL を使用して C# で Excel ファイルを読み取る (サンプルチュートリアル)
はじめに
BlazorはMicrosoftによって作成されたオープンソースの.NET Webフレームワークです。 Blazorアプリケーションは、C#コードをブラウザ対応のJavaScriptとHTMLにコンパイルすることで機能します。 このチュートリアルでは、BlazorサーバーサイドアプリケーションでIronXL C#ライブラリを使用してExcel文書/ワークシートを読み取るための最良で簡単な方法について知識を共有します。

BlazorでExcelファイルを読む方法
- Blazor で Excel ファイルを読み取るための C# ライブラリをインストールする
- Blazorアプリケーションにファイルアップロードボタンを作成する
- C#ライブラリを使用してディスクからExcelファイルを読む
- Blazorアプリを設定して、ウィンドウ上のテーブルに読み取ったデータを表示する
IronXLを使い始める
library_start_trial_block--!!!-library_start_trial_block--!!!-library_start_trial_block--!!!
ステップ1 - Visual StudioでBlazorプロジェクトを作成
私は次のデータを含むXLSXファイルを用意しており、それをBlazorサーバーアプリで読み取り、開く予定です。
| XLSX Excelシートを入力 | Blazor Server Browserでの結果 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ![]() |
Visual Studio IDEでBlazorプロジェクトを作成することから始めます:

プロジェクトタイプをBlazor Server Appとして選択:

F5キーでソリューションを変更せずにアプリケーションを実行します。 アプリケーションのFetch dataタブへナビゲートします:

私たちの目標は、アップロードボタンを使ってExcelファイルをBlazorアプリに読み込み、このページに表示することです。
ステップ2 - IronXLをソリューションに追加
IronXL: .NET Excelライブラリ (インストール手順):
IronXLは、Microsoft Excel内のスプレッドシートをオブジェクトのように扱うことを可能にする.NETライブラリで、開発者がデータストリームを操作するためにC#と.NET Frameworkの全力を使用できるようにします。 開発者として、Excel文書/ワークシートからアプリケーションやデータベースへの行のセルおよび列情報を取得するための素晴らしい方法を求めています。
IronXLを使用すると、ワークシートからセル値、セルの内容、イメージ、参照、フォーマットなどの様々な情報を取得できます。 IronXLは多くの点でNPOIよりも優れています。 IronXLはより多くの機能を提供し、複雑なロジックを簡単に書くことができます。 また、より好ましいライセンスと、より有能なサポートチームを持っています。
IronXLは.NET(8、7、及び6)の最新バージョンと.NET Core Framework 4.6.2+をすべてサポートしています。
以下の方法の1つを使用して、IronXLをソリューションに追加し、ソリューションをビルドします。
オプション2A - NuGetパッケージマネージャを使用
Install-Package IronXL.Excel
オプション2B - csprojファイルにPackageReferenceを追加
IronXLを、ソリューションの.csprojファイル内の任意の<ItemGroup>に次の行を追加することでプロジェクトに直接追加できます:
<PackageReference Include="IronXL.Excel" Version="*" /><PackageReference Include="IronXL.Excel" Version="*" />Visual Studioでこのように示されています:

ステップ3 - ファイルアップロードと表示のコーディング
Visual StudioソリューションビューでPages/フォルダに移動し、FetchData.razorファイルを見つけます。他のrazorファイルを使用してもよいですが、Blazorサーバーアプリのテンプレートにはこれが含まれているため、これを使用します。
ファイルの内容を次のコードに置き換えます:
@using IronXL;
@using System.Data;
@page "/fetchdata"
<PageTitle>Excel File Viewer</PageTitle>
<h1>Open Excel File to View</h1>
<InputFile OnChange="@OpenExcelFileFromDisk" />
<table>
<thead>
<tr>
@foreach (DataColumn column in displayDataTable.Columns)
{
<th>
@column.ColumnName
</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in displayDataTable.Rows)
{
<tr>
@foreach (DataColumn column in displayDataTable.Columns)
{
<td>
@row[column.ColumnName].ToString()
</td>
}
</tr>
}
</tbody>
</table>
@code {
// Create a DataTable instance
private DataTable displayDataTable = new DataTable();
// This method is triggered when a file is uploaded
async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
{
IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
// Load the uploaded file into a MemoryStream
MemoryStream ms = new MemoryStream();
await e.File.OpenReadStream().CopyToAsync(ms);
ms.Position = 0;
// Create an IronXL workbook from the MemoryStream
WorkBook loadedWorkBook = WorkBook.FromStream(ms);
WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()
// Add header Columns to the DataTable
RangeRow headerRow = loadedWorkSheet.GetRow(0);
for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
{
displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
}
// Populate the DataTable with data from the Excel sheet
for (int row = 1; row < loadedWorkSheet.RowCount; row++)
{
IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
displayDataTable.Rows.Add(excelRow.ToArray());
}
}
}@using IronXL;
@using System.Data;
@page "/fetchdata"
<PageTitle>Excel File Viewer</PageTitle>
<h1>Open Excel File to View</h1>
<InputFile OnChange="@OpenExcelFileFromDisk" />
<table>
<thead>
<tr>
@foreach (DataColumn column in displayDataTable.Columns)
{
<th>
@column.ColumnName
</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in displayDataTable.Rows)
{
<tr>
@foreach (DataColumn column in displayDataTable.Columns)
{
<td>
@row[column.ColumnName].ToString()
</td>
}
</tr>
}
</tbody>
</table>
@code {
// Create a DataTable instance
private DataTable displayDataTable = new DataTable();
// This method is triggered when a file is uploaded
async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
{
IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
// Load the uploaded file into a MemoryStream
MemoryStream ms = new MemoryStream();
await e.File.OpenReadStream().CopyToAsync(ms);
ms.Position = 0;
// Create an IronXL workbook from the MemoryStream
WorkBook loadedWorkBook = WorkBook.FromStream(ms);
WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()
// Add header Columns to the DataTable
RangeRow headerRow = loadedWorkSheet.GetRow(0);
for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
{
displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
}
// Populate the DataTable with data from the Excel sheet
for (int row = 1; row < loadedWorkSheet.RowCount; row++)
{
IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
displayDataTable.Rows.Add(excelRow.ToArray());
}
}
}Private IronXL As [using]
Private System As [using]
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'@page "/fetchdata" (Of PageTitle) Excel File Viewer</PageTitle> (Of h1) Open Excel File @to View</h1> <InputFile OnChange="@OpenExcelFileFromDisk" /> (Of table) (Of thead) (Of tr) @foreach(DataColumn column in displayDataTable.Columns)
' {
' <th> @column.ColumnName </th>
' }
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' </tr> </thead> (Of tbody) @foreach(DataRow row in displayDataTable.Rows)
' {
' <tr> @foreach(DataColumn column in displayDataTable.Columns)
' {
' <td> @row[column.ColumnName].ToString() </td>
' }
' </tr>
' }
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' </tbody> </table> @code
' {
' ' Create a DataTable instance
' private DataTable displayDataTable = New DataTable();
'
' ' This method is triggered when a file is uploaded
' async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
' {
' IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
'
' ' Load the uploaded file into a MemoryStream
' MemoryStream ms = New MemoryStream();
'
' await e.File.OpenReadStream().CopyToAsync(ms);
' ms.Position = 0;
'
' ' Create an IronXL workbook from the MemoryStream
' WorkBook loadedWorkBook = WorkBook.FromStream(ms);
' WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; ' Or use .GetWorkSheet()
'
' ' Add header Columns to the DataTable
' RangeRow headerRow = loadedWorkSheet.GetRow(0);
' for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
' {
' displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
' }
'
' ' Populate the DataTable with data from the Excel sheet
' for (int row = 1; row < loadedWorkSheet.RowCount; row++)
' {
' IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().@Select(c => c.ToString());
' displayDataTable.Rows.Add(excelRow.ToArray());
' }
' }
'}まとめ
<InputFile>コンポーネントは、このウェブページでファイルをアップロードすることを可能にします。 イベントコールバックがOpenExcelFileFromDiskを呼び出すように設定されており、それは@codeブロックの底部にある非同期メソッドです。 HTMLはタブにExcelシートをテーブルとしてレンダリングします。
IronXL.Excelは、さまざまなスプレッドシート形式を読み取るための独立した.NETソフトウェアライブラリです。 Microsoft Excelがインストールされている必要はなく、Interopに依存していません。
さらに読む
よくある質問
BlazorサーバーサイドアプリケーションでExcelファイルを読む方法は?
BlazorサーバーサイドアプリケーションでExcelファイルを読むには、IronXL C#ライブラリを使用することができます。NuGetパッケージマネージャーを使用してライブラリをインストールし、その後Excelデータを読み取り表示するコードを実装することで、Blazorプロジェクトと簡単に統合できます。
BlazorプロジェクトでExcelファイルを読むための手順は何ですか?
まず、NuGetパッケージマネージャー経由でIronXLをインストールします。次に、Blazorアプリケーションでファイルアップロードボタンを作成します。アップロードされたExcelファイルを読むためにIronXLを使用し、Razorコンポーネントを使用してデータをテーブル形式で表示するようにアプリを設定します。
ExcelをインストールせずにBlazorアプリケーションでExcelファイルを読むことは可能ですか?
はい、IronXLを使用すると、システムにMicrosoft ExcelをインストールせずにBlazorアプリケーションでExcelファイルの読み取りや操作が可能です。
BlazorアプリケーションでExcelデータを表示する方法は?
IronXLを使用してExcelファイルを読み取った後、Razorコンポーネントを使用してBlazorアプリケーションでデータをテーブル形式で表示し、ユーザーインターフェースを向上させることができます。
IronXLは他のExcelライブラリに対してどのような利点がありますか?
IronXLは広範な機能性、複雑なロジックの取り扱いの容易さ、優れたライセンス条件、および専用サポートを提供し、NPOIなどの代替手段よりも好まれる選択肢となっています。
IronXLがExcel操作に対応している.NETのバージョンはどれですか?
IronXLは最新の.NETバージョン、8、7、および6、さらに.NET Core Framework 4.6.2+をサポートしており、現代のアプリケーションとの幅広い互換性を確保しています。
ExcelライブラリをBlazorプロジェクトに統合する方法は?
NuGetパッケージマネージャーを使用してdotnet add package IronXL.Excelのコマンドを使用するか、.csprojファイルにPackageReferenceを追加することで、IronXLのようなExcelライブラリをBlazorプロジェクトに統合することができます。
BlazorアプリがExcelファイルの読み取りに失敗した場合、どのようなトラブルシューティングの手順を取ることができますか?
IronXLがNuGetを通じて正しくインストールされていること、およびBlazorアプリがディスクからファイルを読むための必要な権限を持っていることを確認してください。Excelファイルのパスが正しく、IronXLがサポートするファイル形式であることを再度確認してください。







