如何在 Blazor 中使用 C# 讀取 Excel 文件

Blazor Read Excel File in C# Using IronXL (Example Tutorial)

This article was translated from English: Does it need improvement?
Translated
View the article in English

介紹

Blazor是由Microsoft建立的開源.NET Web框架。 Blazor應用程式透過將C#程式碼編譯為符合瀏覽器的JavaScript和HTML來運作。 在此教程中,我將分享如何在Blazor伺服器端應用程式中使用IronXL C#程式庫輕鬆讀取Excel文档/工作表的最佳方法。

在 Blazor 中使用 IronXL 檢視 Excel 的示範

開始使用IronXL


步驟1 - 在Visual Studio中建立Blazor專案

我有一個包含以下資料的XLSX文件,我將其讀取並在Blazor伺服器應用程式中打開:

輸入XLSX Excel工作表 Blazor伺服器瀏覽器中的結果
ID
John Applesmith 1
Richard Smith 2
Sherry Robins 3
Browser View related to 步驟1 - 在Visual Studio中建立Blazor專案

首先從Visual Studio IDE中建立一個Blazor專案:

New Project related to 步驟1 - 在Visual Studio中建立Blazor專案

選擇Blazor Server App專案型別:

Choose Blazor Project Type related to 步驟1 - 在Visual Studio中建立Blazor專案

繼續運行應用程式而不改變解決方案,使用F5鍵。 導航到應用程式的Fetch data標籤,如下所示:

First Run related to 步驟1 - 在Visual Studio中建立Blazor專案

我們的目標將是通過上傳按鈕將Excel文件載入Blazor應用程式,然後將其顯示在此頁面上。

步驟2 - 將IronXL新增到您的解決方案中

IronXL:.NET Excel程式庫(安裝說明):

IronXL是一個.NET程式庫,允許您將Microsoft Excel中的試算表視為物件,使開發者能夠使用C#和.NET Framework的全部功能來操作資料流。 作為開發者,我們希望能通過一種簡單的方法將Excel文档/工作表中的每一行的單元格和列資訊導入到我們的應用程式或資料庫中。

使用IronXL,可以獲得來自工作表的各種資訊,如單元格值、單元格內容、圖像、引用和格式等。 IronXL在很多方面優於NPOI。 IronXL提供了更多的功能,可以使編寫複雜的邏輯更容易。 它還有更優越的授權和更有能力的支持團隊。

IronXL支持所有最新版本的.NET(8, 7, 和6)和.NET Core Framework 4.6.2+。

使用下面的方法之一將IronXL新增到您的解決方案中,然後構建該解決方案。

選擇2A - 使用NuGet程式包管理器

Install-Package IronXL.Excel

選擇2B - 在csproj文件中新增PackageReference

您可以通過在您的解決方案的<ItemGroup>中新增以下行來將IronXL直接新增到您的專案中:

<PackageReference Include="IronXL.Excel" Version="*" />
<PackageReference Include="IronXL.Excel" Version="*" />
XML

如在Visual Studio中所示:

Add Ironxl Csproj related to 選擇2B - 在csproj文件中新增PackageReference

步驟3 - 編寫文件上傳和視圖的程式碼

在Visual Studio解決方案視圖中,前往FetchData.razor文件。您可以使用任何其他razor文件,但我們將使用這個,因為它是Blazor伺服器應用程式範本自帶的。

用以下程式碼替換文件內容:

@using IronXL;
@using System.Data;

@page "/fetchdata"

<PageTitle>Excel File Viewer</PageTitle>

<h1>Open Excel File to View</h1>

<InputFile OnChange="@OpenExcelFileFromDisk" />

<table>
    <thead>
        <tr>
            @foreach (DataColumn column in displayDataTable.Columns)
            {
                <th>
                    @column.ColumnName
                </th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (DataRow row in displayDataTable.Rows)
        {
            <tr>
                @foreach (DataColumn column in displayDataTable.Columns)
                {
                    <td>
                        @row[column.ColumnName].ToString()
                    </td>
                }
            </tr>
        }
    </tbody>
</table>

@code {
    // Create a DataTable instance
    private DataTable displayDataTable = new DataTable();

    // This method is triggered when a file is uploaded
    async Task OpenExcelFileFromDisk(InputFileChangeEventArgs e)
    {
        IronXL.License.LicenseKey = "PASTE TRIAL OR LICENSE KEY";

        // Load the uploaded file into a MemoryStream
        MemoryStream ms = new MemoryStream();

        await e.File.OpenReadStream().CopyToAsync(ms);
        ms.Position = 0;

        // Create an IronXL workbook from the MemoryStream
        WorkBook loadedWorkBook = WorkBook.FromStream(ms);
        WorkSheet loadedWorkSheet = loadedWorkBook.DefaultWorkSheet; // Or use .GetWorkSheet()

        // Add header Columns to the DataTable
        RangeRow headerRow = loadedWorkSheet.GetRow(0);
        for (int col = 0; col < loadedWorkSheet.ColumnCount; col++)
        {
            displayDataTable.Columns.Add(headerRow.ElementAt(col).ToString());
        }

        // Populate the DataTable with data from the Excel sheet
        for (int row = 1; row < loadedWorkSheet.RowCount; row++)
        {
            IEnumerable<string> excelRow = loadedWorkSheet.GetRow(row).ToArray().Select(c => c.ToString());
            displayDataTable.Rows.Add(excelRow.ToArray());
        }
    }
}

總結

<InputFile>元件允許您在此網頁上上傳文件。 我們將調用的事件回調設置為@code塊中的異步方法。 HTML將您的Excel工作表作為表格在標籤上渲染。

IronXL.Excel是一個獨立的.NET軟體程式庫,用於讀取各種試算表格式。 它不需要安裝Microsoft Excel,並且不依賴於Interop。


進一步閱讀

Documentation related to 進一步閱讀

查看API參考

探索IronXL的API參考,概述了IronXL的所有功能、命名空間、類別、方法、字段和枚舉的詳細資訊。

查看API參考

下載軟體產品。

常見問題

如何在 Blazor 伺服器端應用中讀取 Excel 文件?

要在 Blazor 伺服器端應用中讀取 Excel 文件,您可以使用 IronXL C# 程式庫。這允許您通過使用 NuGet 包管理器安裝程式庫,然後實施程式碼來讀取和顯示 Excel 資料,輕鬆地將其整合到您的 Blazor 項目中。

設置 Blazor 專案以讀取 Excel 文件的步驟是什麼?

首先,通過 NuGet 包管理器安裝 IronXL。接下來,在 Blazor 應用中建立一個文件上傳按鈕。使用 IronXL 讀取上傳的 Excel 文件,並配置應用來使用 Razor 組件顯示資料表。

在沒有安裝 Excel 的情況下,可以在 Blazor 應用中讀取 Excel 文件嗎?

是的,使用 IronXL,您可以在 Blazor 應用中讀取和操作 Excel 文件,而無需在您的系統上安裝 Microsoft Excel。

如何在 Blazor 應用中顯示 Excel 資料?

using IronXL 讀取 Excel 文件後,您可以在 Blazor 應用中使用 Razor 組件以表格格式顯示資料,增強使用者介面。

IronXL 相較於其他 Excel 程式庫提供了哪些優勢?

IronXL 提供廣泛的功能、處理複雜邏輯的簡便性、優越的授權條款及專業支援,使其成為比 NPOI 等選擇更合適的選擇。

IronXL 支持哪些 .NET 版本的 Excel 操作?

IronXL 支持所有最新版本的 .NET,包括 8、7 和 6,以及 .NET Core Framework 4.6.2+,確保與現代應用的廣泛相容性。

如何將 Excel 程式庫整合到我的 Blazor 專案中?

您可以使用 NuGet 包管理器命令 dotnet add package IronXL.Excel 或在 .csproj 文件中新增 PackageReference,將像 IronXL 這樣的 Excel 程式庫整合到您的 Blazor 專案中。

如果我的 Blazor 應用無法讀取 Excel 文件,我可以採取哪些故障排除步驟?

確保通過 NuGet 正確安裝 IronXL,並確認您的 Blazor 應用有必要權限從磁盤讀取文件。仔細檢查 Excel 文件路徑是否正確,並確認文件格式是否受 IronXL 支持。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備好開始了嗎?
Nuget 下載 2,150,290 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

仍在滾動嗎?

想要快速證明嗎? PM > Install-Package IronXL.Excel
運行一個範例 觀看您的資料成為試算表。