使用IRONXL

如何在Razor中導出CSV和Excel

里根普恩
里根普恩
2023年3月26日
已更新 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 文件的動態內容,允許用戶直接從網頁下載。 可以使用IronXL生成CSV檔案格式,並使用Razor以相似方式下載。 這使得創建報告和其他數據驅動的內容變得簡單,且能夠輕鬆與他人共享。 總體而言,Razor 和 IronXL .NET Core Razor Pages 的組合為網頁開發人員提供了一套強大的工具,用於創建動態的、數據驅動的網頁。

2. 必要條件

在 Visual Studio 中使用 Razor 之前,使用者需要滿足一些先決條件。 以下是一些重要的:

  1. 作為 IronXL 的使用者,您需要在您的電腦系統上安裝 Visual Studio。 您可以從微軟的官方網站免費下載 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 網頁應用專案就建立好了。

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 套件管理器介面中搜尋 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 介面

新創專案的網頁介面

通過編輯 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 使這一過程變得輕鬆。 使用 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 等。

里根普恩
軟體工程師
Regan 畢業於雷丁大學,擁有電子工程學士學位。在加入 Iron Software 之前,他的工作角色讓他專注於單一任務;而他在 Iron Software 工作中最喜歡的是他所能承擔的工作範圍,無論是增加銷售價值、技術支持、產品開發或市場營銷。他喜歡了解開發人員如何使用 Iron Software 庫,並利用這些知識不斷改進文檔和開發產品。
< 上一頁
如何凍結 Excel 中的行(初學者指南)
下一個 >
如何在Excel中顯示所有隱藏的行