使用IRONXL

如何在Razor中導出CSV和Excel

已更新 2024年2月20日
分享:

正在尋找使用 Razor Pages 將數據匯出到 Excel 文件的方法嗎?本文將指導您如何使用 IronXL for .NET 完成此操作。

1. IronXL

IronXL 是用於處理 Excel 文件的 .NET 庫。它基於 OpenXML SDK 架構,提供簡單的 API 來讀取、寫入和操作 Excel 試算表。IronXL 可以用於各種 .NET 應用程序,包括 Web 應用程序、桌面應用程序和控制台應用程序。IronXL 提供一系列功能來處理 Excel 文件,包括능 讀取寫入數據 到各個單元格,創建圖表和圖形,並執行 複雜計算它還支持樞紐分析表等高級 Excel 功能, 條件格式化,和資料驗證。

匯出資料到 Excel 和 CSV 檔案是網頁開發中的常見任務,而 Razor 和 IronXL 使其變得輕而易舉。透過使用 IronXL,開發者可以輕鬆地建立 Excel 試算表並將其儲存到檔案或資料流中。然後可以使用 Razor 來產生包含 Excel 文件連結的動態內容,使使用者能夠直接從網頁下載它們。CSV 檔案格式也可以使用 IronXL 來生成並透過 Razor 進行類似的下載操作。這使得建立報告和其他數據驅動的內容變得簡單,並且可以輕鬆地與他人分享。總而言之,Razor 和 IronXL .NET Core Razor Pages 的組合為網頁開發者提供了一組強大的工具,幫助他們創建動態的數據驅動網頁。

2. 先決條件

在 Visual Studio 中使用 Razor 之前,使用者應該已經準備好一些必要條件。以下是一些重要的條件:

  1. 作為 IronXL 的使用者,你需要在你的電腦系統上安裝 Visual Studio。你可以從微軟的官方網站免費下載 Visual Studio 社區版。

  2. 你還需要在你的電腦上安裝 .NET Core SDK。你可以從微軟的官方網站下載最新版本的 .NET Core SDK。

  3. 在開始使用 Razor View 之前,你的網頁開發環境必須已經設置完畢。

3. 創建一個新的 Visual Studio 專案

若要創建一個新的 Visual Studio 專案,請按照以下步驟操作:

  1. 打開 Visual Studio。
  2. 在開始窗口中點擊「Create a New Project」,或者在菜单栏中點擊「File」>「New」>「Project」。

    如何在Razor中匯出 CSV 和 Excel,圖 1:Visual Studio 的開始視窗

    Visual Studio 的開始視窗

  3. 選擇您想要建立的專案類型,要使用 Razor Pages,請選擇 ASP.NET Core Web App 然後點擊下一步。

    如何在 Razor 中導出 CSV 和 Excel,圖 2:在 Visual Studio 中創建一個新的 .NET 核心 Web 應用程式

    在 Visual Studio 中創建新的 .NET Core 網頁應用程式

  4. 一個新視窗會出現,輸入您的新專案名稱和位置。然後點擊“下一步”。

    如何在Razor中導出CSV和Excel,圖3:配置新專案

    配置新專案

  5. 現在在新視窗中選擇您的目標 Framework,勾選配置 HTTPS 選項並點擊「建立」。

  6. 就這樣,您的新 Visual Studio ASP.NET Core 網頁應用程式專案已建立。

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,第六圖:在軟體包管理控制台中安裝IronXL

在套件管理員主控台中安裝 IronXL

5. 將數據導出到 Razor Net Core 的 Excel 文件中

當專案創建完成後,會生成一個簡單的 Razor 應用程式介面。現在更改介面以導出到 Excel。

如何在 Razor 中匯出 CSV 和 Excel,第七圖:新建項目的網頁介面

新建立專案的網頁介面

透過編輯 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>
VB   C#

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

如何在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
VB   C#

上述代碼將創建一個工作簿並將文件以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")
VB   C#

如何在 Razor 中導出 CSV 和 Excel,圖 11:在瀏覽器中導出 CSV 文件

在瀏覽器中匯出CSV檔案

如何在 Razor 中匯出 CSV 和 Excel,圖 12:已匯出的 CSV 檔案中的資料

匯出CSV檔案中的資料

7. 結論

將數據導出到 Excel 表格和 CSV 文件是網頁開發中的常見任務,而 Razor 和 IronXL 使這一任務變得容易。使用 IronXL,開發人員可以輕鬆創建 Excel 試算表並將其保存到文件或流中。然後可以使用 Razor 生成包含 Excel 文件鏈接的動態內容,允許用戶直接從網頁下載它們。這使得創建報告和其他數據驅動的內容變得簡單,並能輕鬆與他人共享。

Razor 和 IronXL .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 和更多。

< 上一頁
如何凍結 Excel 中的行(初學者指南)
下一個 >
如何在Excel中顯示所有隱藏的行

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 1,023,839 查看許可證 >