如何在 Razor 中導出 CSV 和 Excel
想知道如何使用 Razor Pages 將資料匯出到 Excel 檔案嗎? 本文將指導如何使用 IronXL for .NET 來實現這一目標。
如何在 Razor 中導出 CSV 和 Excel
- 安裝 C# 庫以匯出 CSV 和 Excel 文件
- 建立WorkBook物件並使用
CreateWorkSheet方法建立工作表 - 在工作表中填入資料並變更儲存格樣式
- 將工作簿以流程的形式傳回,並指定格式為電子表格,以便匯出為 Excel 檔案。
- 使用 Razor Web 應用程序,指定格式為text/csv以匯出為 CSV 檔案。
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 之前,使用者應該具備一些先決條件。 以下是一些重要的例子:
- 身為 IronXL 用戶,您需要在電腦系統上安裝 Visual Studio。 您可以從微軟官方網站免費下載 Visual Studio Community。
- 您的電腦上還需要安裝 .NET Core SDK。 您可以從微軟官方網站下載最新版本的 .NET Core SDK。
- 在開始使用 Razor View 之前,必須設定好您的 Web 開發環境。
3. 建立新的 Visual Studio 項目
若要建立新的 Visual Studio 項目,請依照下列步驟操作:
1.開啟 Visual Studio。
在開始視窗中點選"建立新項目",或在選單列中點選"檔案">"新建">"專案"。
如何在 Razor 中匯出 CSV 和 Excel 文件,圖 1:Visual Studio 的開始窗口 Visual Studio 的開始視窗
選擇要建立的項目類型,若要使用 Razor Pages,請選擇 ASP.NET Core Web App,然後按一下"下一步"。
如何在 Razor 中匯出 CSV 和 Excel 文件,圖 2:在 Visual Studio 中建立一個新的 .NET Core Web 應用程式 在 Visual Studio 中建立一個新的 .NET Core Web 應用程式
將出現一個新窗口,輸入您的新項目名稱和位置。 然後點選"下一步"。
- 現在在新視窗中選擇目標框架,選取"設定 HTTPS"選項,然後按一下"建立"。
- 這樣就建立了一個新的 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>這段程式碼將改變首頁的介面,並加入匯出按鈕。
如何在 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以上程式碼將建立一個工作簿,並將該文件作為 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")如何在 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,是因為它們易用、靈活且功能強大。它們可將資料匯出功能無縫整合至網路應用程式中,讓您輕鬆創建動態、資料驅動的內容來分享。









