跳過到頁腳內容
使用 IRONXL

如何在 Razor 中導出 CSV 和 Excel

尋找一種使用 Razor Pages 將數據導出到 Excel 文件的方法? 本文介紹了如何使用 IronXL for .NET 來實現。

class="hsg-featured-snippet">

如何在 Razor 中導出 CSV 和 Excel

  1. 安裝 C# 庫以導出 CSV 和 Excel
  2. 創建 WorkBook 對象並使用 CreateWorkSheet 方法創建 WorkSheet
  3. 用數據填充 WorkSheet 並更改單元格樣式
  4. 以流的形式返回 WorkBook,並指定格式為電子表格以導出為 Excel
  5. 指定格式為 text/csv 以使用 Razor web 應用程序導出為 CSV

1. IronXL

IronXL 是一個用於處理 Excel 文件的 .NET 庫。 它基於 OpenXML SDK 構建,提供了簡單的 API 用於讀取、寫入和操作 Excel 電子表格。 IronXL 可以用於各種類型的 .NET 應用程序,包括 Web 應用程序、桌面應用程序和控制台應用程序。 IronXL provides a range of features for working with Excel documents, including the ability to read and write data to individual cells, create charts and graphs, and perform complex calculations. 它還支持高級 Excel 功能,如數據透視表、條件格式和數據驗證。

將數據導出到 Excel 和 CSV 文件是 Web 開發中的常見任務,Razor 和 IronXL 使其易於完成。 借助 IronXL,開發人員可以輕鬆創建 Excel 電子表格並將其保存到文件或流中。 然後可以使用 Razor 生成包含 Excel 文檔鏈接的動態內容,允許用戶直接從網頁下載它們。 也可以使用 IronXL 生成 CSV 文件格式並使用 Razor 以類似方式下載。 這使得創建報告和其他數據驅動內容變得簡單,並且可以輕鬆與他人分享。 總體而言,Razor 和 IronXL .NET Core Razor Pages 的組合為 Web 開發人員創建動態數據驅動的網頁提供了強大的工具集。

2. 先決條件

在 Visual Studio 中使用 Razor 之前,用戶應該具備一些先決條件。 以下是其中一些重要的先決條件:

  1. 作為 IronXL 用戶,您需要在計算機系統上安裝 Visual Studio。 您可以從 Microsoft 官方網站免費下載 Visual Studio 社區版。
  2. 您還需要在計算機上安裝 .NET Core SDK。 您可以從 Microsoft 官方網站下載最新版本的 .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 應用程序並單擊“下一步”。

如何在 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 界面

通過編輯 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. 結論

將數據導出到 Excel 表和 CSV 文件是 Web 開發中的常見任務,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 可以免費用於非商業開發用途。 提供免費試用以便在生產中測試。 查看定價方案以了解有關價格和許可證的更多詳細信息。

Users can also benefit from Iron Suite, a Suite of 5 professional ASP.NET Core libraries including IronXL, IronPDF, and more.

常見問題解答

如何使用 Razor Pages 將數據導出到 Excel?

您可以將 IronXL 與 Razor Pages 結合使用以將數據導出到 Excel。首先通過 NuGet 包管理器或 Visual Studio 命令行安裝 IronXL。然後,創建新工作簿和工作表,填充數據,並使用 Razor 將其導出為 Excel 文件。

需要哪些步驟來設置使用 Razor 導出數據到 Excel 的環境?

設置環境時,您需要 Visual Studio 和 .NET Core SDK。創建一個新的 ASP.NET Core Web 應用程序項目,從 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 應用程序中,允許創建動態的數據驅動內容,便於共享。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。