如何在 Razor Pages 上生成 Excel 文件
Razor Pages 提供了一種現代化的網頁建置方法。 在 Razor Pages 中,渲染網頁的原始碼是用 C# 編寫的,而不是由伺服器端頁面產生的。
為了有效率地處理 Excel 文件,我們建議使用 IronXL 函式庫,而不是其他函式庫,例如 POI Java 專案 NPOI 套件(特別適用於 PowerPoint 文件)和 Office Interop。 IronXL 功能豐富、易於使用,無需 Microsoft Office,並且支援多個 .NET 版本。
本文示範如何使用 IronXL C# 庫在 Razor Pages 中產生和匯出帶有虛擬資料和行標題的 Excel 電子表格。
如何在 Razor Pages 中產生 Excel 文件
- 安裝 C# 庫以在 Razor 中產生 Excel 文件
- 以某種方式存取或建立新的 Excel 文件
- 在 Razor 中為WorkBook物件新增資料和樣式
- 使用"檔案"方法,在按下按鈕時自動下載 Excel 檔案。
- 檢查產生的 Excel 文件
IronXL:C# Excel 函式庫
IronXL 是一個 C# Excel 函式庫,它提供使用平行處理來提高運算能力的方法來操作大型資料集。 它使用方便,無需了解內部工作原理,並且支援 XLS 和 XLSX 檔案。
IronXL 非常適合匯入、匯出、建立 Excel 公式和辦公室文檔,而無需安裝 Microsoft Office。
學習如何使用 IronXL 在 Razor Pages 中匯入和匯出 Excel 檔案。
在 Razor Pages 中產生 Excel 文件
要在 Razor Pages 中建立 Excel 表格,請先開啟 Visual Studio,建立一個 ASP.NET Core Web 應用程序,然後安裝 IronXL。
先決條件
在 Razor Pages 中建立 Excel 檔案需要以下設定:
- Visual Studio(最新版本)
- .NET Framework 6 或 7
- Visual Studio 中的 .NET Core Web 應用程式
安裝 IronXL 庫
使用 NuGet 套件管理器控制台安裝 IronXL。 輸入以下命令,即可在 .NET Core Web 應用程式中安裝該程式庫:
Install-Package IronXL.Excel
產生 Excel 文件的程式碼
以下是編寫程式碼的方法。 開啟 Pages 資料夾中的"Index.cs"文件,並新增以下方法:
public FileResult OnPostExport()
{
// Create a new WorkBook with XLSX format
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
// Create a new WorkSheet named "data"
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add headers to the new worksheet
workSheet["A1"].Value = "Product EN";
workSheet["B1"].Value = "SKU";
workSheet["C1"].Value = "Customer";
// Make header text bold
workSheet["A1:C1"].Style.Font.Bold = true;
// Add dummy data to the worksheet
workSheet["A2"].Value = "Iron Rods";
workSheet["A3"].Value = "Mobile Phones";
workSheet["A4"].Value = "Chargers";
workSheet["B2"].Value = "105";
workSheet["B3"].Value = "285";
workSheet["B4"].Value = "301";
workSheet["C2"].Value = "Adam";
workSheet["C3"].Value = "Ellen";
workSheet["C4"].Value = "Tom";
// Convert the WorkBook to a byte array Stream for download
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}public FileResult OnPostExport()
{
// Create a new WorkBook with XLSX format
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
// Create a new WorkSheet named "data"
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add headers to the new worksheet
workSheet["A1"].Value = "Product EN";
workSheet["B1"].Value = "SKU";
workSheet["C1"].Value = "Customer";
// Make header text bold
workSheet["A1:C1"].Style.Font.Bold = true;
// Add dummy data to the worksheet
workSheet["A2"].Value = "Iron Rods";
workSheet["A3"].Value = "Mobile Phones";
workSheet["A4"].Value = "Chargers";
workSheet["B2"].Value = "105";
workSheet["B3"].Value = "285";
workSheet["B4"].Value = "301";
workSheet["C2"].Value = "Adam";
workSheet["C3"].Value = "Ellen";
workSheet["C4"].Value = "Tom";
// Convert the WorkBook to a byte array Stream for download
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}Public Function OnPostExport() As FileResult
' Create a new WorkBook with XLSX format
Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
' Create a new WorkSheet named "data"
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")
' Add headers to the new worksheet
workSheet("A1").Value = "Product EN"
workSheet("B1").Value = "SKU"
workSheet("C1").Value = "Customer"
' Make header text bold
workSheet("A1:C1").Style.Font.Bold = True
' Add dummy data to the worksheet
workSheet("A2").Value = "Iron Rods"
workSheet("A3").Value = "Mobile Phones"
workSheet("A4").Value = "Chargers"
workSheet("B2").Value = "105"
workSheet("B3").Value = "285"
workSheet("B4").Value = "301"
workSheet("C2").Value = "Adam"
workSheet("C3").Value = "Ellen"
workSheet("C4").Value = "Tom"
' Convert the WorkBook to a byte array Stream for download
Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End Function這段程式碼建立了一個新的 Excel WorkBook ,其中包含一個WorkSheet 。 表格中填入了虛擬數據,產生的檔案會以下列方式傳送到伺服器:
WorkBook被轉換為Stream,以便作為文件下載。- MIME 類型已設定。
- 已指定文件下載的名稱。
建立一個按鈕用於下載 Excel 文件
將"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">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
<form method="post" asp-page-handler="Export">
<button class="btn btn-success p-3">Generate 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">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
<form method="post" asp-page-handler="Export">
<button class="btn btn-success p-3">Generate Excel File!</button>
</form>
</div>此 HTML 建立表單,並將asp-page-handler設定為"匯出",使應用程式能夠在使用者點擊"產生 Excel 檔案!"按鈕時將 Excel 檔案匯出到本機計算機,從而觸發瀏覽器下載。
運行專案
運行該項目,您將在瀏覽器中看到一個畫面。 點選綠色按鈕下載Excel檔案。
如何在 Razor Pages 中產生 Excel 文件,圖 1:IronXL 產生 Excel 表格 IronXL 產生 Excel 表格
點擊"產生Excel檔案!"後,檔案將開始下載。
如何在 Razor Pages 中產生 Excel 文件,圖 2:IronXL 下載的文件 IronXL 下載文件
開啟生成的 Excel 文件
產生的 Excel 檔案內容與程式碼輸出完全一致,格式也完全正確。 下面顯示的是產生的 Excel 檔案的快照。
如何在 Razor Pages 中產生 Excel 文件,圖 3:IronXL 產生的文件 IronXL產生的文件
IronXL 比競爭對手更勝一籌
IronXL 是一款出色的工具,可以處理 XLS 和 XLSX 格式,沒有像 NPOI 那樣的限制。 NPOI 由於是基於 Java 的,速度較慢,而 IronXL 是 C# 編寫的。 在產生大型/多個電子表格的 ASP.NET Core 應用程式中,建議選擇 IronXL 而不是 POI。
IronXL 允許在不使用 Microsoft Office 的情況下建立和編輯 Excel 檔案。與 Microsoft Interop 不同,IronXL 不需要呼叫 Microsoft Excel 的 ActiveX 控制項來進行 Excel 操作或匯出。 它還允許將 CSV 檔案匯出為 Excel 格式。
結論
本文展示如何使用 IronXL 在 Razor Pages 中產生 Excel 文件,而無需 Microsoft Excel ActiveX,並且方便文件下載。
探索更多關於建立Excel檔案的教學。
常見問題解答
如何在不使用 Interop 的情況下在 Razor Pages 中產生 Excel 檔案?
您可以在不使用 Interop 的情況下,利用 IronXL.Excel 函式庫在 Razor Pages 中產生 Excel 檔案。這個函式庫允許您直接在 C# 中建立並處理 Excel 檔案,不需要 Microsoft Office,只要建立 WorkBook 並將資料加入 WorkSheet 即可。
為 Razor Pages 專案安裝 IronXL 需要哪些步驟?
要為 Razor Pages 專案安裝 IronXL,您可以使用 Visual Studio 中的 NuGet Package Manager Console。執行指令 Install-Package IronXL.Excel 以將函式庫新增至您的專案。
我可以使用 IronXL 從 Razor Pages 應用程式匯出資料嗎?
是的,IronXL 可用於從 Razor Pages 應用程式匯出資料。您可以將資料轉換成Excel格式,再使用Razor Pages將資料以可下載檔案的形式傳回給客戶端。
與 Microsoft Interop 相比,使用 IronXL 生成 Excel 檔案有哪些優點?
與 Microsoft Interop 相比,IronXL 具備多項優點,包括更快的效能、無須安裝 Microsoft Office,以及透過平行處理有效率地處理大型資料集的能力。
是否可以使用 IronXL.Excel 在 Razor Pages 中處理大型 Excel 資料集?
是的,IronXL.Excel 能夠有效率地處理大型 Excel 資料集。它支援平行處理,在處理大量資料時可提升效能與速度。
IronXL 支援不同的 Excel 檔案格式嗎?
IronXL.Excel 支援 XLS 和 XLSX 檔案格式,可進行全面的 Excel 檔案操作,包括匯入、匯出和格式化資料。
在開發中使用 IronXL 是否有任何免費的選項?
IronXL 可免費用於非商業開發。生產測試可免費試用,商業用途則有多種定價方案可供選擇。
如何使用 IronXL.Excel 在 Razor Pages 中觸發 Excel 檔案下載?
若要在 Razor Pages 中使用 IronXL.Excel 觸發 Excel 檔案下載,請建立 WorkBook 並填充資料,然後將其轉換為位元組陣列。使用Razor Pages的File方法將位元組陣列轉換成可下載的檔案。
是什麼讓 IronXL 成為 NPOI 等其他函式庫的首選?
相較於 NPOI 之類的函式庫,IronXL 通常是首選,因為其原生 C# 實作提供更快的效能、易用性,而且不依賴 Java 元件,非常適合 ASP.NET Core 應用程式。









