使用IRONXL

如何在Razor Pages上生成Excel文件

更新 2024年一月29日
分享:

介绍

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

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

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

IronXL: C# Excel 库

IronXL.Excel 是一个 C# Excel 库,提供对大型数据集进行操作的方法和函数。 它利用并行处理来获得更强的计算能力。 程序员很容易使用,因为不需要了解幕后流程是如何工作的。 它支持 XLS 和 XLSX 文件。

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

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

在 Razor Pages 中生成 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 库是一种功能更强大的 Excel 工作工具,它既支持 XLS,也支持 XLSX,而且没有 NPOI 的局限性。 与 IronXL 相比,NPOI 的运行速度要慢得多,因为它是用 Java 而不是 C# 编写的。 因此,当您想用以下语言生成大型/多个电子表格时,请选择 IronXL 而不是 POIASP.NET核心应用。

IronXL.Excel 是一个很棒的库,可以在不使用 Microsoft Office 的情况下创建和编辑 Excel 文件。与 Microsoft Interop 不同,IronXL 无需在后台调用 Microsoft Excel 的 ActiveX 即可执行 Excel 操作并导出到 Excel。 IronXL 可以在没有 Microsoft Office 套件的情况下工作。IronXL.Excel 还能将 CSV 文件导出为 Excel 格式。

此外,IronXL.Excel 还提供与 Excel 文件交互的多种功能,包括流行格式之间的转换, 插入数学函数甚至添加图表和插入图像.

结论

本文介绍了如何使用 IronXL 在 Razor Pages 中生成 Excel 文件,其方式无需调用 Microsoft Excel ActiveX 和下载文件。

请访问以下链接了解更多信息创建 Excel 文件的教程.

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

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

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

免费NuGet下载 总下载量: 1,111,773 查看许可证 >