在ASP.NET MVC中使用IronXL读取Excel文件

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

本教程指导開发人員在ASP.NET MVC应用程序中使用IronXL实现Excel文件解析。

建立一個ASP.NET專案

使用Visual Studio 2022 (或類似的產品版本),建立一個新的ASP.NET專案。根據特定專案的需要,添加額外的NuGet套件和源代碼。

安裝 IronXL 程式庫

C# NuGet 程式庫用于 Excel

安裝與 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于 Excel

安裝與 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

立即開始在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer

查看 IronXLNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變Excel。

C# NuGet 程式庫用于 Excel nuget.org/packages/IronXL.Excel/
Install-Package IronXL.Excel

請考慮安裝 IronXL DLL 直接下載並手動安裝到您的專案或GAC表單: IronXL.zip

手動安裝到您的項目中

下載DLL

建立新專案後,我們需要安裝 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 工作檔案:

Read Excel Files in ASP.NET MVC Using IronXL, Figure 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>
VB   C#

上述代碼使用從 Index 方法返回的 Datatable 作為模型。每一行資料透過 @for 迴圈在網頁上顯示,並包含了Bootstrap格式的裝飾。

運行該專案將產生如下所示的結果。

Read Excel Files in ASP.NET MVC Using IronXL, Figure 2: 引導表格

引導表格