
如何在 Razor Pages 中生成 Excel 文件
Razor Pages 提供了一种现代化的网页构建方法。 在 Razor Pages 中,渲染网页的源代码是用 C# 编写的,而不是由服务器端页面生成的。
为了高效处理 Excel 文件,我们推荐使用 IronXL 库,而不是其他库,例如 POI Java 项目 NPOI 包(尤其适用于 PowerPoint 文件)和 Office Interop。IronXL 功能丰富、易于使用,无需 Microsoft Office,并且支持多个 .NET 版本。
本文演示如何使用 IronXL C# 库在 Razor Pages 中生成和导出带有虚拟数据和行标题的 Excel 电子表格。
如何在 Razor Pages 中生成 Excel 文件
- 安装 C# 库以在 Razor 中生成 Excel 文件
- 以某种方式访问或创建新的 Excel 文件
- 在 Razor 中向WorkBook对象添加数据和样式
- 使用"文件"方法,在按下按钮时自动下载 Excel 文件。
- 检查生成的 Excel 文件
IronXL:C# Excel库
IronXL 是一个 C# Excel 库,它提供使用并行处理来提高计算能力的方法来操作大型数据集。 它使用方便,无需了解内部工作原理,并且支持 XLS 和 XLSX 文件。
IronXL 非常适合导入、导出、创建 Excel 公式和办公文档,而无需安装 Microsoft Office。
学习如何使用 IronXL 在 Razor Pages 中导入和导出 Excel 文件。
在 Razor Pages 中生成 Excel 文件
要在 Razor Pages 中创建 Excel 表格,首先打开 Visual Studio,创建一个 ASP.NET Core Web 应用程序,然后安装 IronXL。
前提条件
在 Razor Pages 中创建 Excel 文件需要以下设置:
- Visual Studio(最新版本)
- .NET Framework 6或7
- Visual Studio 中的 .NET Core Web 应用程序
安装 IronXL 库
using NuGet 程序包管理器控制台安装 IronXL。 输入以下命令,即可在 .NET Core Web 应用程序中安装该库:
生成 Excel 文件的代码
以下是编写代码的方法。 打开 Pages 文件夹中的"Index.cs"文件,并添加以下方法:
public FileResult OnPostExport()
{
// Create a new WorkBook with XLSX format
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
// Create a new WorkSheet named "data"
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add headers to the new worksheet
workSheet["A1"].Value = "Product EN";
workSheet["B1"].Value = "SKU";
workSheet["C1"].Value = "Customer";
// Make header text bold
workSheet["A1:C1"].Style.Font.Bold = true;
// Add dummy data to the worksheet
workSheet["A2"].Value = "Iron Rods";
workSheet["A3"].Value = "Mobile Phones";
workSheet["A4"].Value = "Chargers";
workSheet["B2"].Value = "105";
workSheet["B3"].Value = "285";
workSheet["B4"].Value = "301";
workSheet["C2"].Value = "Adam";
workSheet["C3"].Value = "Ellen";
workSheet["C4"].Value = "Tom";
// Convert the WorkBook to a byte array Stream for download
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}Public Function OnPostExport() As FileResult
' Create a new WorkBook with XLSX format
Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
' Create a new WorkSheet named "data"
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")
' Add headers to the new worksheet
workSheet("A1").Value = "Product EN"
workSheet("B1").Value = "SKU"
workSheet("C1").Value = "Customer"
' Make header text bold
workSheet("A1:C1").Style.Font.Bold = True
' Add dummy data to the worksheet
workSheet("A2").Value = "Iron Rods"
workSheet("A3").Value = "Mobile Phones"
workSheet("A4").Value = "Chargers"
workSheet("B2").Value = "105"
workSheet("B3").Value = "285"
workSheet("B4").Value = "301"
workSheet("C2").Value = "Adam"
workSheet("C3").Value = "Ellen"
workSheet("C4").Value = "Tom"
' Convert the WorkBook to a byte array Stream for download
Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End Function在此代码中,创建了一个新的Excel WorkBook 并包含一个 WorkSheet。 表格中填充了虚拟数据,生成的文件会以如下方式发送到服务器:
WorkBook被转换为Stream以下载为文件。- MIME 类型已设置。
- 已指定文件下载的名称。
创建一个按钮用于下载 Excel 文件
将"Index.cshtml"中的现有代码替换为以下代码:
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">IronXL Generate Excel File</h1>
<p class="m-5">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
<form method="post" asp-page-handler="Export">
<button class="btn btn-success p-3">Generate Excel File!</button>
</form>
</div>
此HTML创建一个表单,将asp-page-handler 设置为"导出",当用户点击"生成Excel文件!"按钮时,应用程序可以将Excel文件导出到本地机器,触发浏览器下载。
运行项目
运行该项目,您将在浏览器中看到一个屏幕。 点击绿色按钮下载Excel文件。
IronXL 生成 Excel 表格
点击"生成Excel文件!"后,文件将开始下载。
IronXL 下载文件
打开生成的 Excel 文件
生成的 Excel 文件内容与代码输出完全一致,格式也完全正确。 下面显示的是生成的 Excel 文件的快照。
IronXL生成的文件
IronXL 比竞争对手更胜一筹
IronXL 是一款出色的工具,可以处理 XLS 和 XLSX 格式,没有像 NPOI 那样的限制。NPOI 由于是基于 Java 的,速度较慢,而 IronXL 是 C# 编写的。 在生成大型/多个电子表格的 ASP.NET Core 应用程序中,建议选择 IronXL 而不是 POI。
IronXL 允许在不使用 Microsoft Office 的情况下创建和编辑 Excel 文件。与 Microsoft Interop 不同,IronXL 不需要调用 Microsoft Excel 的 ActiveX 控件来进行 Excel 操作或导出。 它还允许将 CSV 文件导出为 Excel 格式。
IronXL 还提供了与 Excel 文件交互的丰富功能,包括常用格式之间的转换、插入数学函数、添加图表和插入图像。
结论
本文展示了如何使用 IronXL 在 Razor Pages 中生成 Excel 文件,而无需 Microsoft Excel ActiveX,并方便文件下载。
探索更多关于创建Excel文件的教程。

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



