IronXL を使用して ASP.NET MVC で Excel ファイルを読み取る
このチュートリアルは、IronXLを使用してASP.NET MVCアプリケーションにおいてExcelファイルの解析を実装する方法について、開発者を案内します。
ASP.NETでExcelファイルを読み取る方法
ASP.NETプロジェクトの作成
Visual Studio 2022を使用する(または類似製品のバージョン)、新しいASP.NETプロジェクトを作成します。 特定のプロジェクトに必要な追加のNuGetパッケージおよびソースコードを追加します。
IronXLライブラリをインストール
今日から無料トライアルでIronXLをあなたのプロジェクトで使い始めましょう。
新しいプロジェクトを作成した後、IronXLライブラリをインストールする必要があります。 IronXLライブラリをインストールするには、以下の手順に従ってください。 NuGet パッケージ マネージャー コンソールを開き、次のコマンドを入力します:
Install-Package IronXL.Excel
Excelファイルの読み取り
ASP.NETプロジェクトでデフォルトのコントローラを開きます(例えば、HomeController)ファイルを開き、Index
メソッドを以下のコードに置き換えてください:
public ActionResult Index()
{
WorkBook workbook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();
var dataTable = sheet.ToDataTable();
return View(dataTable);
}
public ActionResult Index()
{
WorkBook workbook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();
var dataTable = sheet.ToDataTable();
return View(dataTable);
}
Public Function Index() As ActionResult
Dim workbook As WorkBook = WorkBook.Load("C:\Files\Customer Data.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets.First()
Dim dataTable = sheet.ToDataTable()
Return View(dataTable)
End Function
Index
アクションメソッドで、IronXL の Load
を使用して Excel ファイルを読み込みます。 Excelファイルのパス(ファイル名を含む)はメソッド呼び出しのパラメーターとして提供されます。 次に、最初のExcelシートを作業シートとして選択し、それに含まれているデータを Datatable
オブジェクトに読み込みます。 最後に、Datatable
がフロントエンドに送信されます。
ウェブページにExcelデータを表示する
次の例では、前の例で返されたDatatableをウェブブラウザーに表示する方法を示します。
この例で使用する作業中のExcelファイルは以下のとおりです:
エクセルファイル
index.cshtml を開く(インデックスビュー)以下のHTMLコードに置き換えてください。
@{
ViewData ["Title"] = "Home Page";
}
@using System.Data
@model DataTable
<div class="text-center">
<h1 class="display-4">Welcome to IronXL Read Excel MVC</h1>
</div>
<table class="table table-dark">
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@for (int i = 0; i < Model.Columns.Count; i++)
{
<td>@row [i]</td>
}
</tr>
}
</tbody>
</table>
@{
ViewData ["Title"] = "Home Page";
}
@using System.Data
@model DataTable
<div class="text-center">
<h1 class="display-4">Welcome to IronXL Read Excel MVC</h1>
</div>
<table class="table table-dark">
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@for (int i = 0; i < Model.Columns.Count; i++)
{
<td>@row [i]</td>
}
</tr>
}
</tbody>
</table>
@
If True Then
ViewData ("Title") = "Home Page"
End If
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: using System.Data model DataTable <div class="text-center"> <h1 class="display-4"> Welcome to IronXL Read Excel MVC</h1> </div> <table class="table table-dark"> <tbody> foreach(DataRow row in Model.Rows)
"display-4"> Welcome [to] IronXL Read Excel MVC</h1> </div> <table class="table table-dark"> (Of tbody) foreach(DataRow row in Model.Rows)
If True Then
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: using System.Data model DataTable <div class="text-center"> <h1 class="display-4"> Welcome to IronXL Read Excel MVC</h1> </div> <table class
"text-center"> <h1 class="display-4"> Welcome [to] IronXL Read Excel MVC</h1> </div> <table class
[using] System.Data model DataTable <div class="text-center"> <h1 class
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' (Of tr) @for(int i = 0; i < Model.Columns.Count; i++)
' {
' <td> @row [i]</td>
' }
</tr>
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' </tbody> </table>
上記のコードは、Index
メソッドから返されたDatatable
をモデルとして使用しています。 テーブルの各行は、装飾のためにBootstrapフォーマットを含む@for
ループを使用してウェブページに印刷されます。
プロジェクトを実行すると、以下に示されている結果が得られます。
ブートストラップテーブル