使用IRONXL

如何在Razor Pages上生成Excel文件

更新 2024年一月29日
分享:

简介

Razor Pages 是一种构建网页的新方法。使用 Razor Pages,渲染网页的源代码由 C# 生成,而不是由服务器端页面生成。

要高效处理 Excel 文件,建议使用 IronXL 库,而不是其他库,如 POI Java 项目 NPOI 包。 (也可用于 PowerPoint 文件) 和 Office Interop。它提供了一个功能丰富的库,简单、易用,而且不需要 Microsoft Office。该库还应支持多个版本的 .NET。

本文将演示如何使用 IronXL C# 库在 Razor Pages 中生成和导出带有假数据和行头的 Excel 电子表格。 (页面模型).

IronXL:C# Excel 库

IronXL 是一个 C# Excel 库,提供了操作大型数据集的方法和函数。它利用并行处理来获得更强的计算能力。程序员使用它非常简单,因为它不需要任何有关幕后处理工作原理的知识。它支持 XLS 和 XLSX 文件。

IronXL 还支持导入和导出 Excel 文件,以及创建 Excel 公式和办公文档。对于不想在机器上安装 Microsoft Office 的用户来说,它是一个完美的解决方案。

让我们看看如何使用 IronXL 在 Razor Pages 中导入和导出 Excel 文件。

在 Razor 页面中生成 Excel 文件

要在 Razor Pages 中创建 Excel 表单,请打开 Visual Studio,创建 ASP.NET Core Web 应用程序并安装 IronXL。

先决条件

在 Razor Pages 中创建 Excel 文件需要一些先决条件:

1.Visual Studio (最新版本)

  1. .NET Framework 6 或 7

  2. Visual Studio 中的 .NET Core Web 应用程序

安装 IronXL 库

您可以使用 NuGet 包管理器控制台安装。打开控制台并编写以下命令,在 .NET Core Web 应用程序中安装 IronXL 库。

Install-Package IronXL.Excel

生成 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
VB   C#

在上述代码中,一个新的 Excel 工作簿 创建,它包含一个 工作表.然后,在工作表中填入虚拟数据,并在服务器响应中返回生成的文件,其中包含以下参数:

  • WorkBook 转换为 `Stream (因为在下载文件之前,必须先将文件转换成数据流).
  • 设置数据类型

  • 指定下载文件的名称。

创建一个下载 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# 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

在上面的 HTML 代码中,创建一个表单标记,将属性 "asp-page-handler "设置为 "Export"。这样,应用程序就能将 Excel 文件导出到本地计算机。此外,创建一个文本为 "生成 Excel 文件 "的按钮。!".用户点击该按钮后,浏览器就会下载生成的 Excel 文件。

运行项目

现在运行项目,你会在浏览器中看到如下界面。点击绿色按钮下载 Excel 文件。

如何在 Razor Pages 上生成 Excel 文件,图 1:IronXL 生成 Excel 工作表

IronXL生成Excel表

点击 "生成 Excel 文件 "按钮后,您将在底部看到下载的文件。!".

如何在 Razor Pages 上生成 Excel 文件,图 2:IronXL 下载文件

IronXL 下载文件

打开生成的 Excel 文件

生成的 Excel 文件内容与代码中的内容一致,格式完美。下面是生成的 Excel 文件快照。

如何在 Razor Pages 上生成 Excel 文件,图 3:IronXL 生成的文件

IronXL生成的文件

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 文件的教程.

IronXL 可免费用于非商业开发目的。A 免费试用 可用于生产测试。查看 定价计划 了解有关价格和许可的更多详情。

< 前一页
如何使用IronXL在Blazor中导出数据到Excel
下一步 >
如何在C#中使用CSV解析器

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 988,189 查看许可证 >