跳至页脚内容
使用 IRONXL

如何在 Razor 中导出 CSV 和 Excel

想知道如何使用 Razor Pages 将数据导出到 Excel 文件吗? 本文将指导如何使用 IronXL for .NET 来实现这一目标。

1. IronXL

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

在 Web 开发中,将数据导出到 Excel 和 CSV 文件是一项常见的任务,而 Razor 和 IronXL 可以轻松完成这项任务。 借助 IronXL,开发人员可以轻松创建 Excel 电子表格并将其保存到文件或流中。 然后可以使用 Razor 生成包含指向 Excel 文档的链接的动态内容,使用户能够直接从网页下载这些文档。 也可以使用 IronXL 生成 CSV 文件格式,并使用 Razor 进行类似下载。 这样就可以轻松创建报告和其他数据驱动的内容,并可以轻松地与他人共享。 总的来说,Razor 和 IronXL .NET Core Razor Pages 的结合为希望创建动态、数据驱动型网页的 Web 开发人员提供了一套强大的工具集。

2. 先决条件

在 Visual Studio 中使用 Razor 之前,用户应该具备一些先决条件。 这里是一些重要的内容:

  1. 作为 IronXL 用户,您需要在计算机系统上安装 Visual Studio。 您可以从微软官方网站免费下载 Visual Studio Community。
  2. 您的计算机上还需要安装 .NET Core SDK。 您可以从微软官方网站下载最新版本的 .NET Core SDK。
  3. 在开始使用 Razor View 之前,必须设置好您的 Web 开发环境。

3. 创建新的Visual Studio项目

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

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

如何在 Razor 中导出 CSV 和 Excel 文件,图 1:Visual Studio 的开始窗口 Visual Studio 的开始窗口

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

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

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

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

  1. 现在在新窗口中选择目标框架,选中"配置 HTTPS"选项,然后单击"创建"。
  2. 这样,你的新 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:新建项目的 Web 界面 新创建项目的Web界面

通过编辑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, together 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, together 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, together 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方法,并编写以下代码。 这段代码会生成一个工作表,将列名以粗体显示,并允许设置其他样式选项,例如字体大小和背景颜色。 你可以把它看作是将数据从数据库导出到 Excel 文件的简单示例。

public FileResult OnPostExport()
{
    // Create a new workbook with the Excel file format
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);

    // Create a new worksheet in the workbook
    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 = "Percentage";

    // Set styling for column headers
    workSheet["A1:D1"].Style.Font.Bold = true;

    // Filling the worksheet with data
    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 the file as an Excel sheet
    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.xlsx");
}
public FileResult OnPostExport()
{
    // Create a new workbook with the Excel file format
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);

    // Create a new worksheet in the workbook
    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 = "Percentage";

    // Set styling for column headers
    workSheet["A1:D1"].Style.Font.Bold = true;

    // Filling the worksheet with data
    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 the file as an Excel sheet
    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.xlsx");
}
Public Function OnPostExport() As FileResult
	' Create a new workbook with the Excel file format
	Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)

	' Create a new worksheet in the workbook
	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 = "Percentage"

	' Set styling for column headers
	workSheet("A1:D1").Style.Font.Bold = True

	' Filling the worksheet with data
	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 the file as an Excel sheet
	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. 结论

在 Web 开发中,将数据导出到 Excel 表格和 CSV 文件是一项常见的任务,而 Razor 和 IronXL 可以轻松完成这项任务。 借助 IronXL,开发人员可以轻松创建 Excel 电子表格并将其保存到文件或流中。 然后可以使用 Razor 生成包含指向 Excel 文档的链接的动态内容,使用户能够直接从网页下载这些文档。 这样就可以轻松创建报告和其他数据驱动的内容,并可以轻松地与他人共享。

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

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

IronXL 可免费用于非商业开发用途。 提供免费试用版,可用于生产环境测试。 请查看定价计划了解更多关于价格和许可的信息。

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

常见问题解答

如何使用 Razor Pages 将数据导出到 Excel?

您可以将 IronXL 与 Razor Pages 结合使用,以将数据导出到 Excel。首先通过 NuGet 包管理器或 Visual Studio 命令行安装 IronXL。然后,创建一个新的工作簿和工作表,用数据填充,然后使用 Razor 导出为 Excel 文件。

设置使用 Razor 导出数据到 Excel 的环境需要哪些步骤?

要设置您的环境,您需要 Visual Studio 和 .NET Core SDK。创建一个新的 ASP.NET Core Web App 项目,从 NuGet 安装 IronXL,并修改 Razor 界面以添加导出功能。

在 .NET 应用程序中将数据导出到 CSV 文件的过程是什么?

要使用 IronXL 将数据导出为 CSV 文件,修改您的 Razor Page 代码以 'text/csv' 格式返回文件。这涉及使用 IronXL 处理工作表数据并指定 CSV 作为输出格式。

从 Razor Pages 导出时可以给 Excel 电子表格进行样式设置吗?

可以,IronXL 允许您在从 Razor Pages 导出时为 Excel 电子表格应用样式。您可以自定义字体、颜色和其他格式元素,以提高数据的展示效果。

IronXL 可用于非商业项目吗?

IronXL 可免费用于非商业开发目的。您还可以在生产环境中使用免费试用版进行测试,详细的商业使用定价计划也可获得。

IronXL 如何简化涉及 Excel 和 CSV 文件的 Web 开发任务?

IronXL 通过提供一个强大的 API 直接从 Razor Pages 生成和操作 Excel 和 CSV 文件,简化了 Web 开发。它消除了对 Interop 的需求,使数据导出任务更加高效且易于实现。

为什么开发人员会选择 Razor 和 IronXL 来执行数据导出任务?

开发人员因其易用性、灵活性和强大的功能而选择 Razor 和 IronXL。它们支持将数据导出功能无缝集成到 Web 应用程序中,从而允许创建可轻松共享的动态数据驱动内容。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。