在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
Razor Pages 是一种构建网页的新方法。 使用 Razor Pages,渲染网页的源代码是用 C# 构建的,而不是由服务器端页面生成的。
为了高效处理Excel文件,建议使用IronXL库,而不是其他库,例如POI Java项目的NPOI包(该包也可以用于处理PowerPoint文件)和Office Interop。IronXL提供了一个功能丰富的库,简单易用,并且不需要Microsoft Office。此外,该库应支持多个版本的.NET。
本文将演示如何使用IronXL C#库在Razor Pages(页面模型)中生成和导出带有虚拟数据和行标题的Excel电子表格。
IronXL.Excel 是一个 C# Excel 库,提供对大型数据集进行操作的方法和函数。 它利用并行处理来获得更强的计算能力。 程序员很容易使用,因为不需要了解幕后流程是如何工作的。 它支持 XLS 和 XLSX 文件。
IronXL.Excel 还支持导入和导出 Excel 文件,以及创建 Excel 公式和办公文档。 对于那些不想在机器上安装 Microsoft Office 的人来说,这是一个完美的解决方案。
让我们看看如何使用 IronXL.Excel 在 Razor Pages 中导入和导出 Excel 文件。
要在 Razor Pages 中创建 Excel 表单,请打开 Visual Studio,创建一个 ASP.NET Core Web 应用程序并安装 IronXL。
要在 Razor Pages 中创建 Excel 文件,有一些先决条件:
Visual Studio(最新版本)
.NET Framework 6 或 7
您可以使用 NuGet 软件包管理器控制台进行安装。 打开控制台并编写以下命令,在 .NET Core Web 应用程序中安装 IronXL 库。
Install-Package IronXL.Excel
现在,是编写代码的时候了。 打开 Pages 文件夹中的 "Index.cs "文件,添加以下方法:
public FileResult OnPostExport()
{
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("data");
//Add data and styles to the new worksheet
workSheet ["A1"].Value = "Product EN";
workSheet ["B1"].Value = "SKU";
workSheet ["C1"].Value = "Customer";
workSheet ["A1:C1"].Style.Font.Bold = true;
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";
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
public FileResult OnPostExport()
{
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("data");
//Add data and styles to the new worksheet
workSheet ["A1"].Value = "Product EN";
workSheet ["B1"].Value = "SKU";
workSheet ["C1"].Value = "Customer";
workSheet ["A1:C1"].Style.Font.Bold = true;
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";
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
Public Function OnPostExport() As FileResult
Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")
'Add data and styles to the new worksheet
workSheet ("A1").Value = "Product EN"
workSheet ("B1").Value = "SKU"
workSheet ("C1").Value = "Customer"
workSheet ("A1:C1").Style.Font.Bold = True
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"
Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End Function
在上述代码中,创建了一个新的 Excel WorkBook
,并且它包含一个WorkSheet
。 然后,在工作表中填充虚拟数据,并在服务器响应中返回生成的文件,参数如下:
WorkBook
转换为Stream
(因为在下载之前将文件转换为流是很重要的)。用以下代码替换 "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# and 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>
@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# and 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 "设置为 "Export"。 这将使应用程序能够将 Excel 文件导出到本地机器。此外,创建一个带有文本“生成 Excel 文件!”的按钮。 当用户点击该按钮时,将触发浏览器下载生成的 Excel 文件。
现在运行该项目,您将在浏览器中看到以下界面。 点击绿色按钮下载 Excel 文件。
IronXL 生成 Excel 工作表
当您点击按钮“Generate Excel File!”时,您会在底部看到下载的文件。
IronXL 下载的文件
生成的 Excel 文件中的内容与代码中的内容一致,格式完美。 您可以查看下面生成的 Excel 文件快照。
IronXL 生成的文件
IronXL.Excel 库是一种功能更强大的 Excel 工作工具,它既支持 XLS,也支持 XLSX,而且没有 NPOI 的局限性。 与 IronXL 相比,NPOI 的运行速度要慢得多,因为它是用 Java 而不是 C# 编写的。 因此,当您想在ASP.NET Core 应用程序中生成大型/多个电子表格时,您将需要选择 IronXL 而不是 POI。
IronXL.Excel 是一个很棒的库,可以在不使用 Microsoft Office 的情况下创建和编辑 Excel 文件。与 Microsoft Interop 不同,IronXL 无需在后台调用 Microsoft Excel 的 ActiveX 即可执行 Excel 操作并导出到 Excel。 IronXL 可以在没有 Microsoft Office 套件的情况下工作。IronXL.Excel 还能将 CSV 文件导出为 Excel 格式。
此外,IronXL 还提供了与 Excel 文件交互的多种功能,包括在流行格式之间转换、插入数学函数,甚至添加图表和插入图像。
本文介绍了如何使用 IronXL 在 Razor Pages 中生成 Excel 文件,其方式无需调用 Microsoft Excel ActiveX 和下载文件。
访问以下链接以获取更多创建 Excel 文件的教程。
IronXL 可免费用于非商业开发目的。 可以获取免费试用版用于在生产中测试。 查看定价计划以获取有关价格和许可的更多详细信息。