使用 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 库

适用于Excel的C# NuGet库

安装使用 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

适用于Excel的C# NuGet库

安装使用 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

开始在您的项目中使用IronPDF,并立即获取免费试用。

第一步:
green arrow pointer

查看 IronXLNuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变Excel。

适用于Excel的C# NuGet库 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: Bootstrap 表格

Bootstrap 表格