跳過到頁腳內容
使用 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。
  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 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 Core 中將資料匯出到 Excel 文件

專案建立完成後,即可建立Razor應用程式的簡單介面。 現在將介面變更為匯出到 Excel。

如何在Razor中匯出 CSV 與 Excel 文件,圖 7:新建專案的 Web 介面 新創建專案的Web介面

透過編輯 @@--CODE-1566--CODE-1565--CODE-1566 目錄中的 @@--CODE-1565--CODE-1566 檔案來更改上述介面。

@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 命令行安裝 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 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我