使用IRONXL

如何在Razor Pages上生成Excel文件

已更新 2024年1月29日
分享:

介紹

Razor Pages 是一種建立網頁的新方法。 使用 Razor Pages,呈現網頁的源代碼是用 C# 編寫的,而不是由伺服器端頁面生成的。

要有效地處理 Excel 文件,建議使用 IronXL 庫,而不是其他庫如 POI Java 項目的 NPOI 套件。(也可以與 PowerPoint 文件一起使用)和 Office Interop。這是一個功能豐富的庫,簡單易用,且不需要 Microsoft Office。此庫還應支援多個版本的 .NET。

本文將演示如何使用 IronXL C# 庫在 Razor Pages 中生成並導出包含虛擬數據和行標題的 Excel 試算表。(頁面模型).

IronXL:C# Excel 函式庫

IronXL 是一個 C# Excel 函式庫,提供用於操作大型數據集的方法和功能。 它利用平行處理來獲得更多的計算能力。 對程式設計師來說,這很容易使用,因為它不需要了解過程幕後的運作方式。 它支持 XLS 以及 XLSX 文件。

IronXL 亦支援匯入和匯出 Excel 檔案,以及建立 Excel 公式和辦公室文件。 這是那些不想在電腦上安裝 Microsoft Office 的完美解決方案。

讓我們看看如何在 Razor Pages 中使用 IronXL 匯入和匯出 Excel 檔案。

在 Razor Pages 中生成 Excel 文件

若要在 Razor Pages 中建立 Excel 表單,請開啟 Visual Studio,建立一個 ASP.NET Core Web 應用程式並安裝 IronXL。

先決條件

在 Razor Pages 中建立 Excel 文件需要滿足以下條件:

  1. Visual Studio(最新版本)

  2. .NET Framework 6 或 7

  3. Visual Studio 中的 .NET Core Web 應用程式

安裝 IronXL 程式庫

您可以使用 NuGet 套件管理器主控台安裝它。 打開控制台並輸入以下命令以在 .NET Core Web 應用程序中安裝 IronXL 庫。

Install-Package IronXL.Excel

生成 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
VB   C#

在上面的程式碼中,一個新的 ExcelWorkbook已創建,並且包含一個工作表. 接著,工作表會填充虛擬數據,並在伺服器回應中返回生成的文件,具有以下參數:

  • WorkBook 轉換為 Stream(因為在下載檔案之前將其轉換為流是很重要的).
  • 設置數據類型
  • 指定文件下載的名稱。

創建一個按鈕以下載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# 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

在上述 HTML 代碼中,創建一個表單標籤,屬性 "asp-page-handler" 設定為 "Export"。 這將使應用程式能夠將 Excel 檔案匯出到本機。此外,建立一個文字為「生成 Excel 檔案」的按鈕。!"." 當使用者點擊此按鈕時,將觸發瀏覽器下載生成的 Excel 文件。

執行專案

現在執行專案,您將在瀏覽器中看到以下畫面。 點擊綠色按鈕以下載 Excel 文件。

如何在Razor Pages上生成Excel文件,圖1:IronXL生成Excel工作表

IronXL 生成 Excel 工作表

當您點擊「Generate Excel File」按鈕時,您會看到下載的檔案在底部。!"."

如何在Razor Pages上生成Excel文件,圖2:IronXL下載的文件

IronXL 下載的檔案

打開生成的 Excel 檔案

生成的 Excel 文件中的內容與程式碼中所寫的一致,且格式完美。 您可以在下方看到產生的 Excel 檔案的快照。

如何在Razor Pages上生成Excel檔案,第3圖:IronXL生成的檔案

IronXL 生成的檔案

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 檔案的教程.

IronXL 可免費用於非商業開發目的。 A免費試用可用於生產中的測試。 看看訂價方案了解更多有關價格和授權的詳情。

< 上一頁
如何使用IronXL將數據匯出至Blazor中的Excel
下一個 >
如何在 C# 中使用 CSV 解析器

準備開始了嗎? 版本: 2024.11 剛剛發布

免費 NuGet 下載 總下載次數: 1,111,773 查看許可證 >