如何在 Razor 中导出 CSV 和 Excel
想知道如何使用 Razor Pages 将数据导出到 Excel 文件吗? 本文将指导如何使用 IronXL for .NET 来实现这一目标。
如何在 Razor 中导出 CSV 和 Excel
- 安装 C# 库以导出 CSV 和 Excel 文件
- 创建WorkBook对象并使用
CreateWorkSheet方法创建工作表 - 在工作表中填充数据并更改单元格样式
- 将工作簿以流的形式返回,并指定格式为电子表格,以便导出为 Excel 文件。
- 使用 Razor Web 应用程序,指定格式为text/csv以导出为 CSV 文件。
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 之前,用户应该具备一些先决条件。 这里是一些重要的内容:
- 作为 IronXL 用户,您需要在计算机系统上安装 Visual Studio。 您可以从微软官方网站免费下载 Visual Studio Community。
- 您的计算机上还需要安装 .NET Core SDK。 您可以从微软官方网站下载最新版本的 .NET Core SDK。
- 在开始使用 Razor View 之前,必须设置好您的 Web 开发环境。
3. 创建新的Visual Studio项目
要创建新的 Visual Studio 项目,请按照以下步骤操作:
- 打开 Visual Studio。
- 在开始窗口中点击"创建新项目",或在菜单栏中点击"文件">"新建">"项目"。
如何在 Razor 中导出 CSV 和 Excel 文件,图 1:Visual Studio 的开始窗口 Visual Studio 的开始窗口
- 选择要创建的项目类型,要使用 Razor Pages,请选择 ASP.NET Core Web App,然后单击"下一步"。
如何在 Razor 中导出 CSV 和 Excel 文件,图 2:在 Visual Studio 中创建一个新的 .NET Core Web 应用程序 在 Visual Studio 中创建一个新的 .NET Core Web 应用程序
- 将出现一个新窗口,输入您的新项目名称和位置。 然后点击"下一步"。
如何在 Razor 中导出 CSV 和 Excel 文件,图 3:配置新项目 配置新项目
- 现在在新窗口中选择目标框架,选中"配置 HTTPS"选项,然后单击"创建"。
- 这样,你的新 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>这段代码将改变首页的界面,并添加导出按钮。
如何在 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以上代码将创建一个工作簿,并将该文件作为 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")如何在 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 应用程序中,从而允许创建可轻松共享的动态数据驱动内容。








