在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
Razor Pages 是一種建立網頁的新方法。 使用 Razor Pages,呈現網頁的源代碼是用 C# 編寫的,而不是由伺服器端頁面生成的。
要有效地處理 Excel 文件,建議使用 IronXL 庫,而不是其他庫如 POI Java 項目的 NPOI 套件。(也可以與 PowerPoint 文件一起使用)和 Office Interop。這是一個功能豐富的庫,簡單易用,且不需要 Microsoft Office。此庫還應支援多個版本的 .NET。
本文將演示如何使用 IronXL C# 庫在 Razor Pages 中生成並導出包含虛擬數據和行標題的 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
在上面的程式碼中,一個新的 ExcelWorkbook
已創建,並且包含一個工作表
. 接著,工作表會填充虛擬數據,並在伺服器回應中返回生成的文件,具有以下參數:
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# 編寫的。 因此,當您想生成大型/多個試算表時,您將選擇使用 IronXL 而不是 POI。ASP.NET核心應用程式。
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 檔案的教程.