IronXL を使用して ASP.NET MVC で Excel ファイルを読み取る

This article was translated from English: Does it need improvement?
Translated
View the article in English

このチュートリアルは、IronXLを使用してASP.NET MVCアプリケーションにおいてExcelファイルの解析を実装する方法について、開発者を案内します。

ASP.NETプロジェクトの作成

Visual Studio 2022を使用する(または類似製品のバージョン)、新しいASP.NETプロジェクトを作成します。 特定のプロジェクトに必要な追加のNuGetパッケージおよびソースコードを追加します。

IronXLライブラリをインストール

今日から無料トライアルでIronXLをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer


新しいプロジェクトを作成した後、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
VB   C#

Index アクションメソッドで、IronXL の Load を使用して Excel ファイルを読み込みます。 Excelファイルのパス(ファイル名を含む)はメソッド呼び出しのパラメーターとして提供されます。 次に、最初のExcelシートを作業シートとして選択し、それに含まれているデータを Datatable オブジェクトに読み込みます。 最後に、Datatable がフロントエンドに送信されます。

ウェブページにExcelデータを表示する

次の例では、前の例で返されたDatatableをウェブブラウザーに表示する方法を示します。

この例で使用する作業中のExcelファイルは以下のとおりです:

IronXLを使用してASP.NET MVCでExcelファイルを読み込む, 図1: 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>
VB   C#

上記のコードは、Indexメソッドから返されたDatatableをモデルとして使用しています。 テーブルの各行は、装飾のためにBootstrapフォーマットを含む@forループを使用してウェブページに印刷されます。

プロジェクトを実行すると、以下に示されている結果が得られます。

ASP.NET MVCでIronXLを使用してExcelファイルを読み込む, 図2:Bootstrapテーブル

ブートストラップテーブル