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

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

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

快速入门:在 MVC 中加载 Excel 表格并将其转换为 DataTable

本示例展示了如何在几秒钟内快速入门:加载一个 Excel 工作簿,选择其第一个工作表,然后使用 IronXL 将其转换为 System.Data.DataTable——无需互操作,轻松便捷。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    var dataTable = IronXL.WorkBook.Load("CustomerData.xlsx").DefaultWorkSheet.ToDataTable(true);
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer

创建一个 ASP.NET 项目

使用 Visual Studio 2022(或类似产品版本)创建一个新的 ASP.NET 项目。 根据特定项目的需要,添加其他 NuGet 包和源代码。

安装 IronXL 库

今天在您的项目中使用 IronXL,免费试用。

第一步:
green arrow pointer


创建新项目后,我们需要安装 IronXL 库。 请按照以下步骤安装 IronXL 库。 打开 NuGet 包管理器控制台并运行以下命令:

Install-Package IronXL.Excel

读取Excel文件

打开 ASP.NET 项目中的默认控制器(例如 HomeController.cs),并将Index方法替换为以下代码:

public ActionResult Index()
{
    // Load the Excel workbook from a specified path.
    WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");

    // Access the first worksheet from the workbook.
    WorkSheet workSheet = workBook.WorkSheets.First();

    // Convert the worksheet data to a DataTable object.
    var dataTable = workSheet.ToDataTable();

    // Send the DataTable to the view for rendering.
    return View(dataTable);
}
public ActionResult Index()
{
    // Load the Excel workbook from a specified path.
    WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");

    // Access the first worksheet from the workbook.
    WorkSheet workSheet = workBook.WorkSheets.First();

    // Convert the worksheet data to a DataTable object.
    var dataTable = workSheet.ToDataTable();

    // Send the DataTable to the view for rendering.
    return View(dataTable);
}
Public Function Index() As ActionResult
	' Load the Excel workbook from a specified path.
	Dim workBook As WorkBook = WorkBook.Load("C:\Files\Customer Data.xlsx")

	' Access the first worksheet from the workbook.
	Dim workSheet As WorkSheet = workBook.WorkSheets.First()

	' Convert the worksheet data to a DataTable object.
	Dim dataTable = workSheet.ToDataTable()

	' Send the DataTable to the view for rendering.
	Return View(dataTable)
End Function
$vbLabelText   $csharpLabel

Index操作方法中,我们使用 IronXL 的Load方法加载 Excel 文件。 Excel 文件的路径(包括文件名)作为参数传递给方法调用。 接下来,我们选择第一个 Excel 工作表作为工作表,并将其中包含的数据加载到DataTable对象中。 最后,将DataTable发送到前端。

在网页上显示 Excel 数据

下一个示例展示了如何在网页浏览器中显示上一个示例中返回的 DataTable。

本示例中将使用的工作 Excel 文件如下所示:

Read Excel Files in ASP.NET MVC Using IronXL, Figure 1: Excel file

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循环将表格中的每一行打印到网页上,并包含 Bootstrap 格式进行装饰。

运行该项目将产生如下所示的结果。

Read Excel Files in ASP.NET MVC Using IronXL, Figure 2: Bootstrap Table

Bootstrap 表格

常见问题解答

如何在 ASP.NET MVC 中不使用 Interop 阅读 Excel 文件?

您可以通过使用 IronXL 库在 ASP.NET MVC 中阅读 Excel 文件而无需使用 Interop。首先,通过 NuGet 安装 IronXL,然后使用 WorkBook.Load 方法加载 Excel 文件。访问工作表并将其转换为 DataTable 进行进一步处理。

在使用 ASP.NET MVC 的网页上显示 Excel 数据需要哪些步骤?

要在使用 ASP.NET MVC 的网页上显示 Excel 数据,请使用 IronXL 加载 Excel 文件,将其转换为 DataTable ,并将其传递给视图。在视图中使用 Razor 语法遍历 DataTable 并将数据渲染为 HTML 表格。

如何在 ASP.NET 应用程序中安装必要的库来处理 Excel 文件?

要在 ASP.NET 应用程序中处理 Excel 文件,请通过 Visual Studio 打开 NuGet 包管理器控制台并执行命令 Install-Package IronXL.Excel 来安装 IronXL 库。

在 ASP.NET MVC 中使用 IronXL 进行 Excel 操作的优势是什么?

IronXL 通过提供易于使用的 API,从而无需 Excel Interop,简化了 ASP.NET MVC 中的 Excel 操作,提高了性能并降低了复杂性。

如何在 ASP.NET MVC 中将 Excel 工作表转换为 DataTable?

在 ASP.NET MVC 中,加载 Excel 文件后,您可以使用 ToDataTable 方法将工作表转换为 DataTable ,以简化数据处理和操作。

IronXL 能否在 ASP.NET Core MVC 应用程序中用于 Excel 处理?

是的,IronXL 兼容 ASP.NET Core MVC 应用程序,并且可以有效地读取和操纵 Excel 文件,而无需依赖 Excel Interop。

在控制器中需要对读取 Excel 文件进行哪些代码修改?

修改默认控制器,例如 HomeController.cs,使用 IronXL 的 WorkBook.Load 加载 Excel 工作簿,并将工作表数据转换为 DataTable 以传递到视图。

IronXL 如何改进在 ASP.NET 中读取 Excel 文件的过程?

IronXL 通过提供消除对 Excel Interop 的需求的简化 API,增强了在 ASP.NET 中读取 Excel 文件的过程,允许无缝读取、编写和操作 Excel 数据。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 1,738,553 | Version: 2025.11 刚刚发布