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

チャクニット・ビン
チャクニット・ビン
2022年12月12日
更新済み 2024年12月10日
共有:
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
$vbLabelText   $csharpLabel

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

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

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

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

IronXLを使用してASP.NET MVCでExcelファイルを読み込む, 図1: Excelファイル

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>
$vbLabelText   $csharpLabel

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

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

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

Bootstrap Table

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。