使用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 文件的動態內容,允許用戶直接從網頁下載。 可以使用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 核心 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包管理器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 可免費用於非商業開發目的。 A免費試用可用於生產中的測試。 看看訂價方案了解更多有關價格和授權的詳情。

用戶還可以受益於Iron Suite包括 5 個專業的 ASP.NET Core 程式庫的一個套件IronXL、IronPDF 和更多。

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

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

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