在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
Razor Pages 是一种构建网页的新方法。使用 Razor Pages,渲染网页的源代码由 C# 生成,而不是由服务器端页面生成。
要高效处理 Excel 文件,建议使用 IronXL 库,而不是其他库,如 POI Java 项目 NPOI 包。 (也可用于 PowerPoint 文件) 和 Office Interop。它提供了一个功能丰富的库,简单、易用,而且不需要 Microsoft Office。该库还应支持多个版本的 .NET。
本文将演示如何使用 IronXL C# 库在 Razor Pages 中生成和导出带有假数据和行头的 Excel 电子表格。 (页面模型).
IronXL 是一个 C# Excel 库,提供了操作大型数据集的方法和函数。它利用并行处理来获得更强的计算能力。程序员使用它非常简单,因为它不需要任何有关幕后处理工作原理的知识。它支持 XLS 和 XLSX 文件。
IronXL 还支持导入和导出 Excel 文件,以及创建 Excel 公式和办公文档。对于不想在机器上安装 Microsoft Office 的用户来说,它是一个完美的解决方案。
让我们看看如何使用 IronXL 在 Razor Pages 中导入和导出 Excel 文件。
要在 Razor Pages 中创建 Excel 表单,请打开 Visual Studio,创建 ASP.NET Core Web 应用程序并安装 IronXL。
在 Razor Pages 中创建 Excel 文件需要一些先决条件:
1.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
转换为 `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表
点击 "生成 Excel 文件 "按钮后,您将在底部看到下载的文件。!".
IronXL 下载文件
生成的 Excel 文件内容与代码中的内容一致,格式完美。下面是生成的 Excel 文件快照。
IronXL生成的文件
IronXL 库是一款功能更强大的 Excel 工具,支持 XLS 和 XLSX,而且没有 NPOI 的局限性。NPOI 运行速度比 IronXL 慢得多,因为它是用 Java 而不是 C# 编写的。因此,如果你想在 Excel 中生成大型/多个电子表格,你应该选择 IronXL 而不是 POI。 ASP.NET 核心应用。
IronXL 是一个无需使用 Microsoft Office 即可创建和编辑 Excel 文件的优秀程序库。与 Microsoft Interop 不同,IronXL 无需在后台调用 Microsoft Excel 的 ActiveX 即可执行 Excel 操作并导出到 Excel。IronXL 可以在不使用 Microsoft Office 套件的情况下工作。IronXL 还能将 CSV 文件导出为 Excel 格式。
此外,IronXL 还提供多种与 Excel 文件交互的功能,包括 流行格式之间的转换, 插入数学函数甚至添加图表和 插入图像.
本文介绍了如何使用 IronXL 在 Razor Pages 中生成 Excel 文件,无需调用 Microsoft Excel ActiveX 和下载文件。
更多信息请访问以下链接 创建 Excel 文件的教程.