使用 IronXL 在 C# 中讀取 Blazor Excel 檔案(範例教學)
介紹
Blazor 是由微軟創建的開源 .NET Web 框架。 Blazor 應用程式的工作原理是將 C# 程式碼編譯成符合瀏覽器規範的 JavaScript 和 HTML。 在本教程中,我將分享使用 IronXL C# 庫在 Blazor 伺服器端應用程式中讀取 Excel 文件/工作表的最佳和最簡單的方法。

如何在 Blazor 中讀取 Excel 文件
- 在 Blazor 中安裝 C# 庫以讀取 Excel 文件
- 在你的 Blazor 應用程式中建立一個檔案上傳按鈕
- 使用 C# 庫從磁碟讀取 Excel 文件
- 配置 Blazor 應用,使其在視窗中以表格形式顯示讀取的資料。
開始使用 IronXL
步驟 1 - 在 Visual Studio 中建立 Blazor 項目
我有一個包含以下數據的 XLSX 文件,我需要將其讀取並導入到 Blazor 伺服器應用程式中開啟:
| 輸入 XLSX Excel 表格 | Blazor 伺服器瀏覽器中的結果 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ![]() |
首先,在 Visual Studio IDE 中建立一個 Blazor 專案:

選擇Blazor Server App項目類型:

無需按F5鍵更改解決方案,直接執行應用程式。 依下列方式導覽至應用程式的Fetch data標籤:

我們的目標是透過上傳按鈕將 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
您可以透過在任何專案中新增以下程式碼行,將 IronXL 直接新增到您的專案中。<ItemGroup>在解決方案的.csproj檔案中:
<PackageReference Include="IronXL.Excel" Version="*" /><PackageReference Include="IronXL.Excel" Version="*" />如圖所示,在 Visual Studio 中:

步驟 3 - 撰寫檔案上傳和檢視功能
在 Visual Studio 解決方案檢視中,前往Pages/資料夾並找到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());
}
}
}@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>該元件允許您在此網頁上傳文件。 我們已將呼叫事件回調設定為呼叫OpenExcelFileFromDisk ,這是底部@code區塊中的非同步方法。 HTML程式碼會將您的Excel表格渲染成標籤頁上的表格。
IronXL.Excel 是一個獨立的 .NET 軟體庫,用於讀取各種電子表格格式。 它不需要安裝Microsoft Excel ,也不依賴 Interop。
延伸閱讀
下載軟體產品。
常見問題解答
如何在 Blazor 伺服器端應用程式中讀取 Excel 檔案?
要在 Blazor 伺服器端應用程式中讀取 Excel 文件,可以使用 IronXL C# 庫。它允許您透過 NuGet 套件管理器輕鬆將其整合到 Blazor 專案中,然後編寫程式碼來讀取和顯示 Excel 資料。
如何設定 Blazor 專案以讀取 Excel 檔案?
首先,透過 NuGet 套件管理器安裝 IronXL。接下來,在 Blazor 應用程式中建立一個檔案上傳按鈕。使用 IronXL 讀取上傳的 Excel 文件,並配置應用以使用 Razor 元件在表格中顯示資料。
是否可以在未安裝 Excel 的 Blazor 應用程式中讀取 Excel 檔案?
是的,使用 IronXL,您可以在 Blazor 應用程式中讀取和操作 Excel 文件,而無需在您的系統上安裝 Microsoft Excel。
如何在 Blazor 應用程式中顯示 Excel 資料?
使用 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 是否支援該檔案格式。







