在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
Razor Pages 是一種建立網頁的新方法。 使用 Razor Pages,呈現網頁的源代碼是用 C# 編寫的,而不是由伺服器端頁面生成的。
為了高效處理 Excel 文件,建議使用 IronXL 庫,相較於 POI Java project 的 NPOI package(也可用於處理 PowerPoint 文件)和 Office Interop,IronXL 提供了一個功能豐富且簡單易用的庫,無需安裝 Microsoft Office。此外,這個庫應該支持多個 .NET 版本。
本文將演示如何使用 IronXL C# 程式庫在 Razor Pages(Page model)中生成和匯出包含虛擬數據和行標題的 Excel 試算表。
IronXL 是一個 C# Excel 函式庫,提供用於操作大型數據集的方法和功能。 它利用平行處理來獲得更多的計算能力。 對程式設計師來說,這很容易使用,因為它不需要了解過程幕後的運作方式。 它支持 XLS 以及 XLSX 文件。
IronXL 亦支援匯入和匯出 Excel 檔案,以及建立 Excel 公式和辦公室文件。 這是那些不想在電腦上安裝 Microsoft Office 的完美解決方案。
讓我們看看如何在 Razor Pages 中使用 IronXL 匯入和匯出 Excel 檔案。
若要在 Razor Pages 中建立 Excel 表單,請開啟 Visual Studio,建立一個 ASP.NET Core Web 應用程式並安裝 IronXL。
在 Razor Pages 中建立 Excel 文件需要滿足以下條件:
Visual Studio(最新版本)
.NET Framework 6 或 7
您可以使用 NuGet 套件管理器主控台安裝它。 打開控制台並輸入以下命令以在 .NET Core Web 應用程序中安裝 IronXL 庫。
Install-Package IronXL.Excel
現在,是時候編寫代碼了。 從 Pages 資料夾中打開 "Index.cs" 檔案,並添加以下方法:
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 = "Product EN";
workSheet ["B1"].Value = "SKU";
workSheet ["C1"].Value = "Customer";
workSheet ["A1:C1"].Style.Font.Bold = true;
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";
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.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 = "Product EN";
workSheet ["B1"].Value = "SKU";
workSheet ["C1"].Value = "Customer";
workSheet ["A1:C1"].Style.Font.Bold = true;
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";
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.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 = "Product EN"
workSheet ("B1").Value = "SKU"
workSheet ("C1").Value = "Customer"
workSheet ("A1:C1").Style.Font.Bold = True
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"
Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End Function
在上述代碼中,創建了一個新的 Excel WorkBook
,其中包含一個 WorkSheet
。 接著,工作表會填充虛擬數據,並在伺服器回應中返回生成的文件,具有以下參數:
WorkBook
轉換為 Stream
(因為在下載之前將檔案轉換為流很重要)。將「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# and 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# and 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" 設定為 "Export"。 這將使應用程式能夠將 Excel 文件匯出到本機。此外,創建一個按鈕,標籤為「生成 Excel 文件!」。 當使用者點擊此按鈕時,將觸發瀏覽器下載生成的 Excel 文件。
現在執行專案,您將在瀏覽器中看到以下畫面。 點擊綠色按鈕以下載 Excel 文件。
IronXL 生成 Excel 工作表
當您點擊「Generate Excel File!」按鈕時,您會在底部看到下載的文件。
IronXL 下載的檔案
生成的 Excel 文件中的內容與程式碼中所寫的一致,且格式完美。 您可以在下方看到產生的 Excel 檔案的快照。
IronXL 生成的文件
IronXL 庫是一個更強大的工具,可用於處理 Excel,支援 XLS 和 XLSX,且不具有 NPOI 的限制。 NPOI 相較於 IronXL 來說運行得更慢,因為它是用 Java 而不是 C# 編寫的。 因此,當您想在ASP.NET Core 應用程式中生成大型/多個電子表格時,您會選擇使用IronXL而非POI。
IronXL 是一個很棒的庫,用於在不使用 Microsoft Office 的情況下創建和編輯 Excel 文件。與 Microsoft Interop 不同,IronXL 不需要在背景中調用 Microsoft Excel 的 ActiveX 即可執行 Excel 操作和匯出到 Excel。 IronXL 可以在不使用 Microsoft Office 套件的情況下運行。IronXL 也可以將 CSV 檔案匯出為 Excel 格式。
此外,IronXL還提供了多種功能來與Excel文件互動,包括在流行格式之間進行轉換,插入數學函數,甚至添加圖表和插入圖片。
本文介紹了如何在 Razor Pages 中使用 IronXL 生成 Excel 文件,而無需調用 Microsoft Excel ActiveX 並下載文件。
請造訪以下連結以獲取更多有關建立 Excel 檔案的教程。