IronXL 開始 Blazor 閱讀 Excel 檔案 使用 IronXL 在 C# 中讀取 Blazor Excel 檔案(範例教學) Curtis Chau 更新:6月 10, 2025 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English 介紹 Blazor 是由微軟創建的開源 .NET Web 框架。 Blazor 應用程式的工作原理是將 C# 程式碼編譯成符合瀏覽器規範的 JavaScript 和 HTML。 在本教程中,我將分享使用 IronXL C# 庫在 Blazor 伺服器端應用程式中讀取 Excel 文件/工作表的最佳和最簡單的方法。 如何在 Blazor 中讀取 Excel 文件 在 Blazor 中安裝 C# 庫以讀取 Excel 文件 在您的 Blazor 應用程式中創建一個文件上傳按鈕 使用 C# 庫從磁碟中讀取 Excel 檔案 配置 Blazor 應用程式以在窗口上的表格中顯示讀取的數據 開始使用 IronXL 立即開始在您的項目中使用 IronXL 並免費試用。 第一步: 免費啟動 步驟 1 - 在 Visual Studio 中建立 Blazor 項目 我有一個包含以下數據的 XLSX 文件,我需要將其讀取並導入到 Blazor 伺服器應用程式中開啟: 輸入 XLSX Excel 表格 Blazor 伺服器瀏覽器中的結果 名字 姓氏 ID 約翰 蘋果匠 1 理查 史密斯 2 雪莉酒 知更鳥 3 首先,在 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="*" /> XML 如圖所示,在 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()); } } } Private IronXL As [using] Private System As [using] 'INSTANT VB TODO TASK: Local functions are not converted by Instant VB: '@page "/fetchdata" (Of PageTitle) Excel File Viewer</PageTitle> (Of h1) Open Excel File @to View</h1> <InputFile OnChange="@OpenExcelFileFromDisk" /> (Of table) (Of thead) (Of tr) @foreach(DataColumn column in displayDataTable.Columns) ' { ' <th> @column.ColumnName </th> ' } 'INSTANT VB TODO TASK: Local functions are not converted by Instant VB: ' </tr> </thead> (Of tbody) @foreach(DataRow row in displayDataTable.Rows) ' { ' <tr> @foreach(DataColumn column in displayDataTable.Columns) ' { ' <td> @row[column.ColumnName].ToString() </td> ' } ' </tr> ' } 'INSTANT VB TODO TASK: Local functions are not converted by Instant VB: ' </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()); ' } ' } '} $vbLabelText $csharpLabel 摘要 這<InputFile>該元件允許您在此網頁上傳文件。 我們已將呼叫事件回調設定為呼叫OpenExcelFileFromDisk ,這是底部@code區塊中的非同步方法。 HTML程式碼會將您的Excel表格渲染成標籤頁上的表格。 IronXL.Excel 是一個獨立的 .NET 軟體庫,用於讀取各種電子表格格式。 它不需要安裝Microsoft Excel ,也不依賴 Interop。 進一步閱讀 檢視 API 參考資料 探索 IronXL 的 API 參考,其中概述了 IronXL 的所有功能、命名空間、類別、方法、欄位和枚舉的詳細資訊。 檢視 API 參考資料 下載軟體產品。 常見問題解答 如何在 Blazor 伺服器端應用程式中讀取 Excel 檔案? 若要在 Blazor 伺服器端應用程式中讀取 Excel 檔案,您可以使用 IronXL.Excel C# 函式庫。它可讓您使用 NuGet 套件管理員安裝函式庫,然後執行程式碼來讀取和顯示 Excel 資料,輕鬆與您的 Blazor 專案整合。 設定 Blazor 專案來讀取 Excel 檔案的步驟為何? 首先,透過 NuGet Package Manager 安裝 IronXL。接著,在您的 Blazor 應用程式中建立一個檔案上傳按鈕。使用 IronXL 讀取上傳的 Excel 檔案,並配置應用程式使用 Razor 元件將資料顯示在表格中。 在沒有安裝 Excel 的情況下,是否可以在 Blazor 應用程式中讀取 Excel 檔案? 是的,使用 IronXL,您可以在 Blazor 應用程式中讀取並處理 Excel 檔案,而無需在系統中安裝 Microsoft Excel。 如何在 Blazor 應用程式中顯示 Excel 資料? 使用 IronXL 讀取 Excel 檔案後,您可以在 Blazor 應用程式中使用 Razor 元件,以表格格式顯示資料,強化使用者介面。 與其他 Excel 函式庫相比,IronXL.Excel 有哪些優點? IronXL 提供廣泛的功能、處理複雜邏輯的便利性、優異的授權條款以及專屬的支援,使其成為優於 NPOI 等替代方案的首選。 IronXL.Excel 支援哪些 .NET 版本? 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 檔案,我可以採取哪些疑難排解步驟? 確保 IronXL 已經透過 NuGet 正確安裝,且您的 Blazor 應用程式擁有從磁碟讀取檔案的必要權限。仔細檢查 Excel 檔案路徑是否正確,以及檔案格式是否受 IronXL 支援。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 準備好開始了嗎? Nuget 下載 1,738,553 | Version: 2025.11 剛發表 免費下載 NuGet 下載總數:1,738,553 檢視授權