C#でIronXLを使用してBlazorでExcelファイルを読む(例題チュートリアル)
イントロダクション
Blazorは、マイクロソフトによって作成されたオープンソースの.NET Webフレームワークです。 Blazorアプリケーションは、C#コードをブラウザに対応するJavaScriptとHTMLにコンパイルすることで動作します。 このチュートリアルでは、IronXL C#ライブラリを使用してBlazorサーバーサイドアプリケーションでExcelドキュメント/ワークシートを読み取るための最適かつ簡単な方法についての知識を共有します。
BlazorでExcelファイルを読み取る方法
- BlazorでExcelファイルを読み取るためのC#ライブラリをインストールする
- Blazorアプリケーションにファイルアップロードボタンを作成する
- C# ライブラリを使用してディスクから Excel ファイルを読み取る
- Blazorアプリを設定して、ウィンドウに読取データをテーブルで表示する
IronXLで始めましょう
今日から無料トライアルでIronXLをあなたのプロジェクトで使い始めましょう。
手順 1 - Visual StudioでBlazorプロジェクトを作成
以下のデータを含むXLSXファイルがあり、それをBlazor Serverアプリで読み込み、開きます:
入力XLSX Excelシート | Blazorサーバー ブラウザーでの結果 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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, and 6)そして、.NET Core Framework 4.6.2以降。
次の方法のいずれかを使用して、IronXLをソリューションに追加し、次にソリューションをビルドしてください。
オプション2A - NuGetパッケージマネージャーを使用
Install-Package IronXL.Excel
Option 2B - csprojファイルにPackageReferenceを追加
次の行を任意の `
IronXL.License.LicenseKey = "YOUR_LICENSE_KEY_HERE";
IronXL.License.LicenseKey = "YOUR_LICENSE_KEY_HERE";
IronXL.License.LicenseKey = "YOUR_LICENSE_KEY_HERE"
``` 終了後、IronXLを利用できます。<ItemGroup>ソリューションの
.csproj` ファイルにおいて:
<PackageReference Include="IronXL.Excel" Version="*" />
Visual Studio で表示されているように:
ステップ3 - ファイルアップロードと表示のコーディング
Visual Studioのソリューションビューで、Pages/
フォルダーに移動し、FetchData.razor
ファイルを見つけます。他のrazorファイルを使用することもできますが、Blazor Server Appテンプレートに付属しているため、このファイルを使用します。
以下のコードに置き換えてください:
@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
private DataTable displayDataTable = new DataTable();
// When a file is uploaded to the App using the InputFile, trigger:
async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
{
IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
// Open the File to a MemoryStream object
MemoryStream ms = new MemoryStream();
await e.File.OpenReadStream().CopyToAsync(ms);
ms.Position = 0;
// Define variables for IronXL
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
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
private DataTable displayDataTable = new DataTable();
// When a file is uploaded to the App using the InputFile, trigger:
async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
{
IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
// Open the File to a MemoryStream object
MemoryStream ms = new MemoryStream();
await e.File.OpenReadStream().CopyToAsync(ms);
ms.Position = 0;
// Define variables for IronXL
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
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
' private DataTable displayDataTable = New DataTable();
'
' ' When a file is uploaded to the App using the InputFile, trigger:
' async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
' {
' IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";
'
' ' Open the File to a MemoryStream object
' MemoryStream ms = New MemoryStream();
'
' await e.File.OpenReadStream().CopyToAsync(ms);
' ms.Position = 0;
'
' ' Define variables for IronXL
' 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
' for (int row = 1 ; row < loadedWorkSheet.RowCount ; row++)
' {
' IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().@Select(c => c.ToString());
' displayDataTable.Rows.Add(excelRow.ToArray());
' }
' }
'}
概要
「The 」への翻訳は「
」です。しかし、文の残り部分をご提供いただけましたら、完全な翻訳を提供いたします。@code
ブロックの下部にある非同期メソッドであるOpenExcelFileFromDisk
を呼び出すように設定しました。 HTMLはタブ上のテーブルとしてExcelシートをレンダリングします。
IronXL.Excelは、さまざまなスプレッドシート形式を読み取るための唯一の.NETソフトウェアライブラリです。 必要ありませんマイクロソフトエクセルインストールされ、Interopに依存しません。
さらなる読み物
申し訳ありませんが、翻訳を行うための具体的なコンテンツが提供されていません。翻訳したい英語のテキストを入力してください。ダウンロードソフトウェア製品。