IronXL 开始 Blazor 读取 Excel 文件 使用 IronXL 在 C# 中读取 Blazor Excel 文件(示例教程) Curtis Chau 已更新:六月 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 C# 库。它允许您轻松集成到您的 Blazor 项目中,通过使用 NuGet 包管理器安装库,然后实现代码以读取和显示 Excel 数据。 设置 Blazor 项目以读取 Excel 文件的步骤是什么? 首先,通过 NuGet 包管理器安装 IronXL。接下来,在您的 Blazor 应用程序中创建一个文件上传按钮。使用 IronXL 读取上传的 Excel 文件,并配置应用程序使用 Razor 组件在表格中显示数据。 在没有安装 Excel 的情况下,可以在 Blazor 应用程序中读取 Excel 文件吗? 是的,使用 IronXL,您可以在没有系统中安装 Microsoft Excel 的情况下在 Blazor 应用程序中读取和操作 Excel 文件。 我如何在 Blazor 应用程序中显示 Excel 数据? 使用 IronXL 读取 Excel 文件后,您可以在 Blazor 应用程序中使用 Razor 组件以表格式显示数据,增强用户界面。 IronXL 相对其他 Excel 库有什么优势? IronXL 提供广泛的功能、处理复杂逻辑的简便性、优越的许可条款和专门的支持,使其成为 NPOI 等替代方案的首选。 IronXL 支持哪些 .NET 版本进行 Excel 操作? IronXL 支持包括 8、7 和 6 在内的所有最新 .NET 版本以及.NET Core Framework 4.6.2+,确保与现代应用程序的广泛兼容性。 我如何将 Excel 库集成到我的 Blazor 项目中? 您可以通过使用命令dotnet add package IronXL.Excel的 NuGet 包管理器或在.csproj文件中添加PackageReference将像 IronXL 这样的 Excel 库集成到您的 Blazor 项目中。 如果我的 Blazor 应用程序无法读取 Excel 文件,我该采取哪些故障排除步骤? 确保 IronXL 已通过 NuGet 正确安装,并且您的 Blazor 应用程序具备从磁盘读取文件的必要权限。仔细检查 Excel 文件路径是否正确,以及文件格式是否受 IronXL 支持。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 准备开始了吗? Nuget 下载 1,738,553 | Version: 2025.11 刚刚发布 免费 NuGet 下载 总下载量:1,738,553 查看许可证