
如何在 ASP .NET Core 中打开 Excel 文件
本教程将演示如何在 ASP.NET Core 应用程序中使用 IronXL 打开 Excel 文件。 它将涵盖读取 Excel 文件的基本步骤,然后显示其中的数据,并将修改后的数据保存回文件。
什么是 IronXL?
IronXL 是一个 .NET Excel 库,提供了处理 Excel 文档的功能,无需依赖于 Microsoft Excel 或 Office Interop。 它支持 .NET Framework 和 .NET Core,能够通过几行代码来编写、操作和读取 Excel 文件。 有关读取 Excel 文件的详细教程,请参阅此 Excel 教程。
IronXL 库可以读取和写入 Excel 文档,提取数据,操作数据,甚至从头创建新的 Excel 文件。 IronXL 不仅支持 .XLS 格式,还兼容 .XLSX,这是 Microsoft 开发的基于 XML 的电子表格文件格式。
准备工作
在深入代码之前,请确保您具备以下条件:
- 安装 .NET Core 3.1 或更高版本。
- 一个适用于 .NET 开发的合适 IDE(推荐使用 Microsoft Visual Studio)。
- 对 ASP.NET Core 和 Razor Pages 的基本理解。
创建一个新的 .NET Core 项目
- 打开 Microsoft Visual Studio 并选择"创建新项目"。
- 从项目模板列表中选择"ASP.NET Core Web 应用程序"并点击"下一步"。
- 为您的项目提供名称,例如"Open_Excel_File_.NET_Core",选择位置,并点击"下一步"。
- 选择".NET Core"作为目标框架,并选择"ASP.NET Core 3.1 或更高版本"作为版本。 在"项目模板"部分,选择"Web 应用程序"并点击"创建"。
安装 IronXL 包
接下来的步骤是在刚创建的项目中安装 IronXL 包:
-
在解决方案资源管理器中右键点击项目并选择"管理 NuGet 包"。
-
在"浏览"选项卡中,搜索"IronXL"并点击IronXL.Excel 包的"安装"。
在 NuGet 包管理器 UI 中搜索并安装 IronXL 包 -
等待包安装完成。
您的 ASP.NET Core 项目现在已设置完成,IronXL 库已安装并可以使用。
创建 Razor 页面
现在,让我们创建一个 Razor 页面来编写打开 Excel 文件的代码。
-
在解决方案资源管理器的"Pages"文件夹上右键单击并选择"添加" > "Razor 页面"。
-
输入"ExcelOpener"作为页面名称并点击"添加"。
创建一个新的 Razor 页面
这将创建两个文件:ExcelOpener.cshtml 和 ExcelOpener.cshtml.cs。
ExcelOpener.cshtml 文件包含页面的 HTML 标记,而 ExcelOpener.cshtml.cs 文件包含页面的 C# 后台代码。
读取 Excel 文件
让我们深入到代码中。 所提供的ExcelOpenerModel类是一个Razor页面模型。 此类有一个Data,用于存储从Excel文件读取的数据。
public List<List<string>> Data { get; set; }
public ExcelOpenerModel()
{
Data = new List<List<string>>();
}Public Property Data() As List(Of List(Of String))
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public ExcelOpenerModel()
Public Sub New()
Data = New List(Of List(Of String))()
End Sub在OnGet方法中,使用IronXL加载Excel文件并从默认工作表(工作簿中的第一张表)读取数据。 每一行表示为一个Data属性中。
public void OnGet()
{
try
{
Data = new List<List<string>>();
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < sheet.RowCount; i++)
{
var row = new List<string>();
for (int j = 0; j < sheet.ColumnCount; j++)
{
row.Add(sheet.GetCellAt(i, j).Value.ToString());
}
Data.Add(row);
}
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}Public Sub OnGet()
Try
Data = New List(Of List(Of String))()
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
For i As Integer = 0 To sheet.RowCount - 1
Dim row = New List(Of String)()
For j As Integer = 0 To sheet.ColumnCount - 1
row.Add(sheet.GetCellAt(i, j).Value.ToString())
Next j
Data.Add(row)
Next i
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End Sub关键方法解释
WorkBook.Load(filepath): 此方法从指定的文件路径加载Excel文档。 帮助加载和读取 Excel 表。workbook.DefaultWorkSheet: 此属性获取Excel电子表格中默认(第一张)Excel工作表。sheet.GetCellAt(i, j).Value.ToString(): 此方法获取指定行和列索引处的单元格,并将其值转换为字符串。 这是一个可以根据行和列索引访问 Excel 文件中特定单元格或区域的索引方法示例。
简短说明
在ExcelOpener.cshtml.cs文件中,一个名为ExcelOpenerModel的类表示Razor页面模型。 它包含一个名为List<List<string>>,用于保存Excel文件中的数据。
请求页面时调用Data属性。
写入 Excel 文件
在OnPost方法用于保存对Excel文件的修改。它首先加载Excel文件并检索默认工作表。 然后将Data中的值写入工作表中的单元格,并将工作簿保存为一个新文件。
public void OnPost()
{
try
{
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
var sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < Data.Count; i++)
{
for (int j = 0; j < Data[i].Count; j++)
{
sheet.SetCellValue(i, j, Data[i][j]);
}
}
// Save the Excel file
var filename = @"C:\ModifiedData.xlsx";
workbook.SaveAs(filename);
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}Public Sub OnPost()
Try
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet = workbook.DefaultWorkSheet
For i As Integer = 0 To Data.Count - 1
Dim j As Integer = 0
Do While j < Data(i).Count
sheet.SetCellValue(i, j, Data(i)(j))
j += 1
Loop
Next i
' Save the Excel file
Dim filename = "C:\ModifiedData.xlsx"
workbook.SaveAs(filename)
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End Sub关键方法解释
sheet.SetCellValue(i, j, Data[i][j]): 此方法设置指定行和列索引处单元格的值。workbook.SaveAs(filepath): 此方法将Excel工作簿保存到指定的文件路径。
简短说明
提交表单时调用OnPost方法,并将修改后的数据保存回Excel文件。它加载Excel文件,选择默认工作表,并根据从表单接收到的修改数据更新单元格值。
编辑 Excel 数据的 HTML 表单
在 ExcelOpener.cshtml 中,定义了一个表单用于显示和编辑 Excel 文件中的数据。每个单元格值显示在一个文本输入字段中。 编辑后,点击"节省"按钮将提交表单,触发OnPost方法并将更改保存到Excel文件。
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
<!-- Bootstrap classes for tables -->
@for (int i = 0; i < Model.Data.Count; i++)
{
<tr>
@for (int j = 0; j < Model.Data[i].Count; j++)
{
<td>
<input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> <!-- Bootstrap class for form controls -->
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
导航到页面
在 _Layout.cshtml 中,导航菜单中添加了指向页面的链接。 点击此链接,您将导航到 Excel opener 页面。
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
运行应用程序并解释输出
通过单击Visual Studio中的"Build"按钮或使用Ctrl + Shift + B快捷方式构建应用程序。 按 F5 或点击 Visual Studio 中的"启动"按钮运行应用程序。
应用程序运行后,通过点击导航栏中相应的链接来导航到"ExcelOpener"页面。 页面将以表格格式显示 Excel 中的数据。
您可以修改表格中的数据,然后点击"保存"按钮将更改保存回 Excel 文件中。
在 Web 应用程序中显示 Excel 数据
本教程演示了如何在 ASP.NET Core 应用程序中使用 IronXL 打开 Excel 文件。 IronXL 提供了一种简单而便捷的方式来读取和操作 Excel 文件。 您可以浏览 IronXL 文档以了解更多高级功能和特性。
IronXL 提供免费试用,让您可以评估其功能。 如果您发现它对您的项目有用,您可以从$999开始购买许可证。

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



