使用IRONXL

如何在Razor Pages上生成Excel文件

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

介紹

Razor Pages 是建立網頁的新方法。使用 Razor Pages,渲染網頁的源代碼是由 C# 建立的,而不是由伺服器端的頁面生成的。

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

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

IronXL: C# Excel Library

IronXL 是一個 C# Excel 庫,提供了操作大數據集的方法和功能。它使用了並行處理以獲取更多的計算能力。由於不需要了解幕後的運作方式,所以程序員很容易使用。它支持 XLS 和 XLSX 文件。

IronXL 還支持導入和導出 Excel 文件,以及創建 Excel 公式和 Office 文件。這是那些不想在機器上安裝 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#

在上面的程式碼中,一個新的 Excel Workbook 已創建,並且包含一個 工作表之後,使用假資料填充工作表,並使用以下參數在伺服器回應中返回生成的文件:

  • 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" 的 form 標籤。這將使應用程序能夠將 Excel 文件導出到本地機器。此外,創建一個帶有文字 "Generate Excel File" 的按鈕。!當使用者點擊此按鈕時,將觸發瀏覽器下載生成的 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 庫是一個更強大的 Excel 工具,支持 XLS 和 XLSX 並且沒有 NPOI 的限制。由於 NPOI 是用 Java 編寫的,而不是用 C# 編寫的,因此與 IronXL 相比,NPOI 的運行速度要慢得多。因此,在需要生成大量/多個電子表格時,您會想選擇 IronXL 而不是 POI。 ASP.NET 核心應用程序。

IronXL 是一個優秀的庫,用於在不使用 Microsoft Office 的情況下創建和編輯 Excel 文件。與 Microsoft Interop 不同,IronXL 不需要在後台調用 Microsoft Excel 的 ActiveX 來執行 Excel 操作並導出到 Excel。IronXL 可以在沒有 Microsoft Office 套件的情況下工作。IronXL 也可以將 CSV 文件導出為 Excel 格式。

此外,IronXL 还提供了廣泛的功能來與 Excel 文件互動,包括 在熱門格式之間轉換, 插入數學函數,甚至添加圖表和 插入圖片.

結論

本文介紹了如何使用IronXL在Razor Pages中生成Excel文件,這種方式不需要調用Microsoft Excel ActiveX並下載文件。

訪問以下鏈接以了解更多信息 建立 Excel 檔案的教程

IronXL 可以免費用於非商業開發用途。 免費試用 可在生產環境中進行測試。查看 訂價方案 了解更多有關價格和授權的詳情。

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

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

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