使用IRONXL

如何在Razor中导出CSV和Excel

Kannaopat Udonpant
坎那帕·乌东攀
2023年三月26日
更新 2024年二月20日
分享:

正在寻找使用 Razor Pages 将数据导出到 Excel 文件的方法? 本文将指导如何使用 IronXL for .NET 实现这一目标。

1.IronXL

IronXL 是一个用于处理 Excel 文件的 .NET 库。 它建立在 OpenXML SDK 的基础之上,提供了一个用于读取、写入和操作 Excel 电子表格的简单 API。 IronXL for .NET 可用于各种 .NET 应用程序,包括 Web 应用程序、桌面应用程序和控制台应用程序。 IronXL 提供了一系列用于处理 Excel 文档的功能,包括读取写入数据到单个单元格,创建图表和图形,以及进行复杂计算。 它还支持高级 Excel 功能,例如数据透视表,条件格式设置和数据验证。

将数据导出到 Excel 和 CSV 文件是网络开发中的一项常见任务,而 Razor 和 IronXL.Excel 可以轻松完成这项任务。 通过 IronXL.Excel,开发人员可以轻松创建 Excel 电子表格并将其保存到文件或数据流中。 然后可以使用 Razor 生成包含 Excel 文档链接的动态内容,让用户可以直接从网页上下载。 CSV 文件格式也可以使用 IronXL 生成,并使用 Razor 进行类似下载。 这使得创建报告和其他数据驱动内容变得简单,可以轻松地与他人共享。 总之,Razor 和 IronXL for .NET Core Razor Pages 的结合为希望创建动态、数据驱动网页的网络开发人员提供了强大的工具集。

2. 前提条件

在 Visual Studio 中使用 Razor 之前,用户应具备一些先决条件。 以下是一些重要的术语:

  1. 作为 IronXL 用户,您需要在计算机系统中安装 Visual Studio。 您可以从 Microsoft 的官方网站免费下载 Visual Studio Community。

  2. 您还需要在计算机上安装 .NET Core SDK。 您可以从微软官方网站下载最新版本的 .NET Core SDK。

  3. 在开始使用 Razor View 之前,您的网络开发环境必须设置完毕。

3.创建新的 Visual Studio 项目

要创建一个新的 Visual Studio 项目,请按照以下步骤操作:

  1. 打开 Visual Studio。

  2. 点击开始窗口中的 "创建新项目",或点击菜单栏中的 "文件">"新建">"项目"。

    如何在 Razor 中导出 CSV 和 Excel,图 1:Visual Studio 的启动窗口

    Visual Studio 的启动窗口

  3. 选择要创建的项目类型,要使用 Razor Pages,请选择 ASP.NET Core Web App,然后点击下一步。

    如何在 Razor 中导出 CSV 和 Excel,图 2:在 Visual Studio 中创建新的 .NET Core Web 应用

    在 Visual Studio 中创建一个新的 .NET Core Web 应用程序

  4. 将出现一个新窗口,请写入您的新项目名称和位置。 然后点击下一步。

    如何在 Razor 中导出 CSV 和 Excel,图 3:配置新项目

    配置新项目

  5. 现在在新窗口中选择目标框架,选中为 HTTPS 配置选项,然后点击创建。

  6. 就这样,您的新 Visual Studio ASP.NET Core Web 应用程序项目就创建好了。

4.安装 IronXL

IronXL 库可以通过不同方式下载和安装。

它们是

  • 使用 Visual Studio NuGet 软件包
  • 使用Visual Studio命令行。

4.1 使用 Visual Studio

要安装 IronXL 库,最简单的方法是使用 NuGet 包管理器。 打开管理器,在浏览选项卡中搜索 IronXL。 从搜索结果中选择 IronXL 并安装。

下面的截图显示了如何在 Visual Studio 中打开 NuGet 包管理器。

如何在Razor中导出CSV和Excel,图4:导航到NuGet包管理器

导航到NuGet包管理器

搜索结果中的 IronXL:

如何在 Razor 中导出 CSV 和 Excel,图 5:在 NuGet 包管理器 UI 中搜索 IronXL

在 NuGet 程序包管理器 UI 中搜索 IronXL

4.2 使用 Visual Studio 命令行

使用控制台执行操作是很多人的选择。 如果您喜欢通过命令行安装 IronXL,可以按照以下步骤操作:

  • 在 Visual Studio 中,前往工具 > NuGet 包管理器 > 包管理器控制台
  • 在“包管理器控制台”选项卡中输入以下行:
Install-Package IronXL.Excel

现在,软件包将下载/安装到当前项目,并可随时使用。

如何在Razor中导出CSV和Excel,第6图:在程序包管理器控制台中安装IronXL

在程序包管理器控制台中安装IronXL

5.在 Razor Net Core 中将数据导出到 Excel 文件

项目创建后,将创建 Razor 应用程序的简单界面。 现在将导出界面改为 Excel 导出。

如何在 Razor 中导出 CSV 和 Excel,图 7:新创建项目的网页界面

新创建项目的网页界面

通过编辑Pages目录中的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">This will be the combination of Razor and IronXL and togather they will Export data to Excel file.</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Export 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">This will be the combination of Razor and IronXL and togather they will Export data to Excel file.</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Export Excel File!</button>
    </form>
</div>
page model ReadOnly Property () As IndexModel
	ViewData ("Title") = "Home page"
End Property
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<div class="text-center"> <h1 class="display-4"> IronXL Generate Excel File</h1> <p class="m-5"> This will be the combination @of Razor @and IronXL @and togather they will Export data @to Excel file.</p> <form method="post" asp-page-handler="Export"> <button class="btn btn-success p-3"> Export Excel File!</button> </form> </div>
$vbLabelText   $csharpLabel

该代码将更改主页界面并添加导出按钮。

如何在Razor中导出CSV和Excel,图8:带导出按钮的新界面

具有导出按钮的新界面

现在在 index.cshtml.cs 文件中创建 onPostExport 方法并编写以下代码。 该代码会生成一个工作表,并将列名写成粗体。 用户还可以使用样式设置字体大小,甚至设置列的背景颜色。 这与将数据库表数据从 SQL Server 或其他数据库服务器导出到 Excel 是一样的。

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 = "Name";
    workSheet ["B1"].Value = "Email";
    workSheet ["C1"].Value = "Marks";
    workSheet ["D1"].Value = "Persent Age";
    workSheet ["A1:D1"].Style.Font.Bold = true;
    workSheet ["A2"].Value = "Nick";
    workSheet ["A3"].Value = "Roy";
    workSheet ["A4"].Value = "Chris";
    workSheet ["B2"].Value = "Nick@gmail.com";
    workSheet ["B3"].Value = "Roy123@gmail.com";
    workSheet ["B4"].Value = "Chris1999@gmail.com";
    workSheet ["C2"].Value = "850";
    workSheet ["C3"].Value = "710";
    workSheet ["C4"].Value = "990";
    workSheet ["D2"].Value = "85%";
    workSheet ["D3"].Value = "71%";
    workSheet ["D4"].Value = "99%";

    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.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 = "Name";
    workSheet ["B1"].Value = "Email";
    workSheet ["C1"].Value = "Marks";
    workSheet ["D1"].Value = "Persent Age";
    workSheet ["A1:D1"].Style.Font.Bold = true;
    workSheet ["A2"].Value = "Nick";
    workSheet ["A3"].Value = "Roy";
    workSheet ["A4"].Value = "Chris";
    workSheet ["B2"].Value = "Nick@gmail.com";
    workSheet ["B3"].Value = "Roy123@gmail.com";
    workSheet ["B4"].Value = "Chris1999@gmail.com";
    workSheet ["C2"].Value = "850";
    workSheet ["C3"].Value = "710";
    workSheet ["C4"].Value = "990";
    workSheet ["D2"].Value = "85%";
    workSheet ["D3"].Value = "71%";
    workSheet ["D4"].Value = "99%";

    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.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 = "Name"
	workSheet ("B1").Value = "Email"
	workSheet ("C1").Value = "Marks"
	workSheet ("D1").Value = "Persent Age"
	workSheet ("A1:D1").Style.Font.Bold = True
	workSheet ("A2").Value = "Nick"
	workSheet ("A3").Value = "Roy"
	workSheet ("A4").Value = "Chris"
	workSheet ("B2").Value = "Nick@gmail.com"
	workSheet ("B3").Value = "Roy123@gmail.com"
	workSheet ("B4").Value = "Chris1999@gmail.com"
	workSheet ("C2").Value = "850"
	workSheet ("C3").Value = "710"
	workSheet ("C4").Value = "990"
	workSheet ("D2").Value = "85%"
	workSheet ("D3").Value = "71%"
	workSheet ("D4").Value = "99%"

	Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.xlsx")
End Function
$vbLabelText   $csharpLabel

上述代码将创建一个工作簿,并以 Excel 表单形式返回文件。 该方法将链接到按钮,一旦点击按钮,将自动创建并下载导出的 XLSX 文件。

如何在 Razor 中导出 CSV 和 Excel,图 9:在浏览器中导出 XLSX 文件

在浏览器中导出 XLSX 文件

如何在Razor中导出CSV和Excel,图10:导出的XLSX文件中的数据

导出 XLSX 文件中的数据

6.将数据导出到 CSV 文件

与上述一样,您可以轻松导出 CSV 文本文件,并在上述代码示例中对一行代码进行更改。 只需用此代码替换上述源代码中的返回文件代码,您的 Razor 页面就会返回 CSV 文件。

return File(workBook.ToStream().ToArray(), "text/csv", "Student.csv");
return File(workBook.ToStream().ToArray(), "text/csv", "Student.csv");
Return File(workBook.ToStream().ToArray(), "text/csv", "Student.csv")
$vbLabelText   $csharpLabel

如何在Razor中导出CSV和Excel,图11:在浏览器中导出CSV文件

在浏览器中导出CSV文件

如何在 Razor 中导出 CSV 和 Excel,图 12:导出的 CSV 文件中的数据

导出CSV文件中的数据

7.结论

将数据导出到 Excel 表和 CSV 文件是网络开发中的一项常见任务,而 Razor 和 IronXL.Excel 可以轻松完成这项任务。 通过 IronXL.Excel,开发人员可以轻松创建 Excel 电子表格并将其保存到文件或数据流中。 然后可以使用 Razor 生成包含 Excel 文档链接的动态内容,让用户可以直接从网页上下载。 这使得创建报告和其他数据驱动内容变得简单,可以轻松地与他人共享。

Razor 和 IronXL for .NET Core Razor Pages 的结合为希望创建动态、数据驱动网页的网络开发人员提供了强大的工具集。 要开始使用 Razor 和 IronXL,需要安装 Visual Studio 和 .NET Core SDK。 之后,创建一个新的 Visual Studio 项目并安装 IronXL 库就可以轻松完成了。 最后,通过更改主页的界面并创建一个OnPostExport方法,开发人员可以通过几个简单的步骤将数据导出到Excel文档。

要了解有关IronXL、Razor以及如何将数据导出到Excel和CSV文件的更多信息,请访问以下页面

IronXL 可免费用于非商业开发目的。 生产环境测试提供免费试用。 查看定价计划以获取有关价格和许可的更多详细信息。

用户还可以受益于Iron Suite,这是一个包含5个专业ASP.NET Core库的套件,包括IronXL、IronPDF等。

Kannaopat Udonpant
坎那帕·乌东攀
软件工程师
在成为软件工程师之前,Kannapat 从日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了生物生产工程系车辆机器人实验室的成员。2022年,他利用自己的 C# 技能加入了 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他能直接向编写 IronPDF 大部分代码的开发者学习。除了同伴学习,Kannapat 还享受在 Iron Software 工作的社交方面。不写代码或文档时,Kannapat 通常在 PS5 上玩游戏或重看《最后生还者》。
< 前一页
如何冻结Excel中的行(初学者指南)
下一步 >
如何取消隐藏Excel中的所有行