跳過到頁腳內容
使用 IRONXL

如何在 Razor 中導出 CSV 和 Excel

想知道如何使用 Razor Pages 將資料匯出到 Excel 檔案嗎? 本文將指導如何使用 IronXL for .NET 來實現這一目標。

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 之前,使用者應該具備一些先決條件。 以下是一些重要的例子:

  1. 身為 IronXL 用戶,您需要在電腦系統上安裝 Visual Studio。 您可以從微軟官方網站免費下載 Visual Studio Community。
  2. 您的電腦上還需要安裝 .NET Core SDK。 您可以從微軟官方網站下載最新版本的 .NET Core SDK。
  3. 在開始使用 Razor View 之前,必須設定好您的 Web 開發環境。

3. 建立新的 Visual Studio 項目

若要建立新的 Visual Studio 項目,請依照下列步驟操作:

1.開啟 Visual Studio。

  1. 在開始視窗中點選"建立新項目",或在選單列中點選"檔案">"新建">"專案"。

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

  2. 選擇要建立的項目類型,若要使用 Razor Pages,請選擇 ASP.NET Core Web App,然後按一下"下一步"。

    如何在 Razor 中匯出 CSV 和 Excel 文件,圖 2:在 Visual Studio 中建立一個新的 .NET Core Web 應用程式 在 Visual Studio 中建立一個新的 .NET Core Web 應用程式

  3. 將出現一個新窗口,輸入您的新項目名稱和位置。 然後點選"下一步"。

    如何在 Razor 中匯出 CSV 和 Excel 文件,圖 3:配置新項目 配置新項目

  4. 現在在新視窗中選擇目標框架,選取"設定 HTTPS"選項,然後按一下"建立"。
  5. 這樣就建立了一個新的 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>
$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.結論

在 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 Command Line 安裝 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.Excel 允許您在從 Razor Pages 匯出時將樣式套用至 Excel 試算表。您可以自訂字型、顏色和其他格式元素,以強化資料的呈現。

IronXL 可以用於非商業專案嗎?

IronXL 可免費供非商業開發用途使用。您也可以使用免費試用版在生產環境中進行測試,詳細的定價方案可供商業使用。

IronXL.Excel 如何簡化涉及 Excel 和 CSV 檔案的網頁開發工作?

IronXL.Excel 提供強大的 API,可直接從 Razor Pages 生成和處理 Excel 與 CSV 檔案,從而簡化 Web 開發。它消除了 Interop 的需求,使資料匯出任務更有效率且容易實作。

為何開發人員會選擇 Razor 和 IronXL 來執行資料匯出任務?

開發人員之所以選擇 Razor 和 IronXL,是因為它們易用、靈活且功能強大。它們可將資料匯出功能無縫整合至網路應用程式中,讓您輕鬆創建動態、資料驅動的內容來分享。

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