使用 IRONXL 如何在 ASP.NET 中查看 Excel Curtis Chau 已更新:2025年6月22日 下载 IronXL NuGet 下载 DLL 下载 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 本综合教程将演示如何使用ASP.NET MVC和IronXL构建一个Excel查看器。 此查看器将使用户能够直接从他们的网页中显示、编辑和浏览Excel文件。 什么是 IronXL? IronXL 是一个功能强大的.NET库,提供与Excel操作相关的大量功能。 它提供了简化的API,让.NET开发人员能够以包括XLS、XLSX、CSV等在内的各种文件格式编写、操作和读取Excel文档。 使用IronXL,您可以读取Excel文件,提取数据、添加或编辑工作表、创建或修改行和列、应用公式、保存更改等等。 所有这些操作都可以在不需要在您的机器上安装Microsoft Excel的情况下进行。 IronXL支持图像、样式、条件格式和其他复杂的Excel功能,使其成为.NET Excel操作的全面解决方案。 它非常适合处理您的ASP.NET MVC应用程序的数据源和电子表格需求。 将在ASP.NET Web应用程序中使用IronXL库查看Excel文件。 前提条件 对ASP.NET MVC有基本了解 在您的机器上安装了Visual Studio 安装了 IronXL 库。 您可以在其官方文档中找到安装指南。 开始 首先,让我们在Visual Studio中创建一个新的ASP.NET MVC项目。 打开 Visual Studio。 点击文件 > 新建 > 项目。 在新项目窗口中,选择ASP.NET Web 应用程序 (.NET Framework) 模板。 在Visual Studio中创建新的ASP.NET Web应用程序 命名您的项目ExcelViewer,选择项目位置,然后点击创建按钮。 配置您的项目 这篇文章将集中在实现此ASP.NET MVC应用程序中的Excel查看器功能。 将IronXL添加到您的项目中 为了处理Excel文件格式(如.xls、.xlsx和.csv),IronXL提供全面的功能来加载Excel文档、读取、写入甚至修改Excel数据。 它支持公式、图像、格式化等多种功能。 在解决方案资源管理器中右键点击您的项目,然后导航到管理NuGet包。 在NuGet包管理器中,搜索IronXl.Excel。 点击安装将其添加到您的项目中。 在 NuGet 包管理器 UI 中搜索并安装 IronXL 包 您还可以使用以下命令通过包管理器控制台安装IronXL: Install-Package IronXL.Excel 从包管理器控制台安装IronXL包 现在IronXL已安装,让我们进入下一步。 构建模型 ExcelModel 第一步是为Excel数据创建一个模型。 ExcelModel 类将表示单个 Excel 工作表,并将包含工作表名称和 Excel 工作表中的数据。 namespace Excel_File_Viewer_IronXl.Models { public class ExcelModel { public string SheetName { get; set; } // Data is a list of string arrays, each array represents a row in the sheet. public List<string[]> Data { get; set; } } } namespace Excel_File_Viewer_IronXl.Models { public class ExcelModel { public string SheetName { get; set; } // Data is a list of string arrays, each array represents a row in the sheet. public List<string[]> Data { get; set; } } } $vbLabelText $csharpLabel ExcelModel 定义了两个属性,SheetName 和 Data。 SheetName 是一个简单的字符串,用于保存每个 Excel 工作表的名称。 Data 是一个字符串数组列表,用于存储 Excel 表格中每一行的数据。 ExcelViewModel 接下来,我们创建 ExcelViewModel。 该模型是一个包装器,其中包含一个文件、一条消息和一个 ExcelModel 列表,该列表表示文件中所有工作表的数据。 using Microsoft.AspNetCore.Http; using System.Collections.Generic; namespace Excel_File_Viewer_IronXl.Models { public class ExcelViewModel { public IFormFile File { get; set; } // For uploading Excel file public string Message { get; set; } // Message for storing success/error messages public List<ExcelModel> ExcelData { get; set; } // List to store data from all sheets } } using Microsoft.AspNetCore.Http; using System.Collections.Generic; namespace Excel_File_Viewer_IronXl.Models { public class ExcelViewModel { public IFormFile File { get; set; } // For uploading Excel file public string Message { get; set; } // Message for storing success/error messages public List<ExcelModel> ExcelData { get; set; } // List to store data from all sheets } } $vbLabelText $csharpLabel 此类将用作视图模型。 它有一个用于文件上传的属性,一个用于显示任何消息的字符串,以及一个用于存储检索到的 Excel 数据的字符串。 5. 创建 ExcelController 以加载 Excel 文件进行数据提取 然后创建一个新的 ExcelController。 这是奇迹发生的地方! 使用 IronXL 的WorkBook.Load函数加载 Excel 文件,循环遍历工作表,提取数据,并将其添加到 ExcelViewModel 中。 using Excel_File_Viewer_IronXl.Models; using IronXL; using System.Collections.Generic; using System.Web.Mvc; using System; using System.Linq; public class ExcelController : Controller { // GET: Excel public ActionResult Index() { var model = new ExcelViewModel(); // Define the file path for the Excel file string filePath = Server.MapPath("~/App_Data/Test.xlsx"); // List to store data for each sheet List<ExcelModel> data = new List<ExcelModel>(); try { // Load workbook directly from a file path var workbook = WorkBook.Load(filePath); // Loop through all worksheets in the workbook foreach (var worksheet in workbook.WorkSheets) { // Add each worksheet's name and data to the data list data.Add(new ExcelModel { SheetName = worksheet.Name, Data = worksheet.Rows.Select(r => r.ToArray().Select(c => c.Value.ToString()).ToArray()).ToList() }); } model.ExcelData = data; model.Message = "File processed successfully!"; } catch (Exception ex) { model.Message = $"Error occurred while processing file: {ex.Message}"; } return View(model); } } using Excel_File_Viewer_IronXl.Models; using IronXL; using System.Collections.Generic; using System.Web.Mvc; using System; using System.Linq; public class ExcelController : Controller { // GET: Excel public ActionResult Index() { var model = new ExcelViewModel(); // Define the file path for the Excel file string filePath = Server.MapPath("~/App_Data/Test.xlsx"); // List to store data for each sheet List<ExcelModel> data = new List<ExcelModel>(); try { // Load workbook directly from a file path var workbook = WorkBook.Load(filePath); // Loop through all worksheets in the workbook foreach (var worksheet in workbook.WorkSheets) { // Add each worksheet's name and data to the data list data.Add(new ExcelModel { SheetName = worksheet.Name, Data = worksheet.Rows.Select(r => r.ToArray().Select(c => c.Value.ToString()).ToArray()).ToList() }); } model.ExcelData = data; model.Message = "File processed successfully!"; } catch (Exception ex) { model.Message = $"Error occurred while processing file: {ex.Message}"; } return View(model); } } $vbLabelText $csharpLabel 在这里,初始化一个 ExcelViewModel,然后使用IronXL加载WorkBook ,循环遍历每个WorkSheet ,对于每个 WorkSheet,我们创建一个 ExcelModel,其名称和数据与工作表相同。 然后,将 ExcelModel 添加到 ExcelViewModel 中的 ExcelData 列表中。 将加载和显示以下Excel文件的数据: 示例Excel文件 6. 创建视图 在您的Views/Excel目录中,创建一个新的 HTML 文件 Index.cshtml 以显示 Excel 数据。 然后使用 Bootstrap 的 nav-tabs 来表示 Excel 文件中的每个工作表。每个工作表将是一个单独的标签页,标签页的内容将是该工作表的数据。 @model Excel_File_Viewer_IronXl.Models.ExcelViewModel @{ ViewBag.Title = "Index"; } <h2>Excel File Viewer</h2> @if (Model.ExcelData != null) { <ul class="nav nav-tabs" id="myTab" role="tablist"> @for (int i = 0; i < Model.ExcelData.Count; i++) { <li class="nav-item"> <a class="nav-link @(i == 0 ? "active" : "")" id="tab-@i" data-toggle="tab" href="#content-@i" role="tab" aria-controls="content-@i" aria-selected="@(i == 0)"> @Model.ExcelData[i].SheetName </a> </li> } </ul> <div class="tab-content" id="myTabContent"> @for (int i = 0; i < Model.ExcelData.Count; i++) { <div class="tab-pane fade @(i == 0 ? "show active" : "")" id="content-@i" role="tabpanel" aria-labelledby="tab-@i"> <table class="table table-bordered"> @foreach (var row in Model.ExcelData[i].Data) { <tr> @foreach (var cell in row) { <td>@cell</td> } </tr> } </table> </div> } </div> } @model Excel_File_Viewer_IronXl.Models.ExcelViewModel @{ ViewBag.Title = "Index"; } <h2>Excel File Viewer</h2> @if (Model.ExcelData != null) { <ul class="nav nav-tabs" id="myTab" role="tablist"> @for (int i = 0; i < Model.ExcelData.Count; i++) { <li class="nav-item"> <a class="nav-link @(i == 0 ? "active" : "")" id="tab-@i" data-toggle="tab" href="#content-@i" role="tab" aria-controls="content-@i" aria-selected="@(i == 0)"> @Model.ExcelData[i].SheetName </a> </li> } </ul> <div class="tab-content" id="myTabContent"> @for (int i = 0; i < Model.ExcelData.Count; i++) { <div class="tab-pane fade @(i == 0 ? "show active" : "")" id="content-@i" role="tabpanel" aria-labelledby="tab-@i"> <table class="table table-bordered"> @foreach (var row in Model.ExcelData[i].Data) { <tr> @foreach (var cell in row) { <td>@cell</td> } </tr> } </table> </div> } </div> } $vbLabelText $csharpLabel 在这个代码示例中,nav nav-tabs 将生成一个选项卡列表,每个选项卡代表 Excel 文件中的一个工作表。相应的选项卡内容将以表格格式显示相应工作表的数据。 通过进行一些更改,添加了一个浏览按钮以手动选择Excel文件。 运行程序 按下所有步骤进行设置并正确设置项目后,是时候运行它了。 您应该会看到一个以Excel文件中的工作表名称命名的tabs构成的网页。点击标签将以表格式显示相应工作表的数据。 Excel查看器 结论 您刚刚使用IronXL创建了一个ASP.NET Excel查看器! 这个强大的库使用户能够更高效、更易于管理地处理Excel文件。 在.NET环境中,借助IronXL,处理Excel文件从未如此简单。 IronXL提供免费试用,让您无需任何前期费用即可探索和了解其强大的功能。一旦您测试后发现它完全符合您的需求,许可证价格将从 $799 起。 常见问题解答 如何使用 ASP.NET MVC 创建一个 Excel 查看器? 您可以通过在 Visual Studio 中设置一个新项目并通过 NuGet 包管理器添加 IronXL 库来使用 ASP.NET MVC 创建一个 Excel 查看器。这使您能够直接在网页应用程序中加载、显示和操作 Excel 文件。 为处理 Excel 文件设置 ASP.NET MVC 项目的步骤是什么? 要为处理 Excel 文件设置 ASP.NET MVC 项目,请打开 Visual Studio,创建一个新的 ASP.NET Web 应用程序项目,并通过 NuGet 安装 IronXL 库。接下来,实现像 ExcelModel 和 ExcelViewModel 这样的模型来管理 Excel 数据,并使用 ExcelController 来加载和处理 Excel 文件。 我可以在 ASP.NET 应用程序中显示多个 Excel 工作表吗? 是的,您可以在 ASP.NET 应用程序中显示多个 Excel 工作表,通过使用 IronXL 加载 Excel 文件,然后利用 Bootstrap 的 nav-tabs 创建每个工作表的单独选项卡,以表格格式显示数据。 如何使用 .NET 库在 ASP.NET 中加载和处理 Excel 文件? 在 ASP.NET 中,您可以使用 IronXL 的 WorkBook.Load 方法加载和处理 Excel 文件。此方法允许您读取 Excel 文件,遍历其工作表并提取数据以供显示或进一步处理。 在 .NET 中使用 IronXL 进行 Excel 操作的优势是什么? IronXL 在 .NET 中进行 Excel 操作具有几个优势,包括支持多种 Excel 文件格式,能够操作复杂的 Excel 功能(如图像和条件格式),以及无需在服务器上安装 Microsoft Excel。 创建 ASP.NET Excel 查看器时如何排查常见问题? 创建 ASP.NET Excel 查看器时的常见问题可以通过确保 IronXL 库已通过 NuGet 正确安装、验证所有必要的模型和控制器是否已正确实现以及确保 Excel 文件格式受支持来排查。 是否可以直接从 ASP.NET 网页编辑 Excel 文件? 是的,可以使用 IronXL 直接从 ASP.NET 网页编辑 Excel 文件。该库允许您将 Excel 文件加载到网页应用程序中,修改数据并无缝地将更改保存回文件。 IronXL 是否支持读取和写入 Excel 文件? 是的,IronXL 支持读取和写入 Excel 文件。您可以使用它读取现有 Excel 文档中的数据,并以多种格式(包括 XLS、XLSX 和 CSV)将新数据或更改写入 Excel 文件。 在 ASP.NET MVC 应用程序中应创建什么模型来管理 Excel 数据? 在 ASP.NET MVC 应用程序中,您应该创建诸如 ExcelModel 之类的模型以表示单个 Excel 表,以及 ExcelViewModel 用于管理表集合并处理文件上传和消息传递。 如何在购买前测试 IronXL 的功能? 您可以通过下载其网站上提供的免费试用版来测试 IronXL 的功能。此试用版允许您无需任何初始费用即可在您的 .NET 应用程序中探索该库在处理 Excel 文件方面的能力。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新2026年3月1日 在.NET C# 中下载 Excel 文件:将数据导出为 XLSX、CSV 等格式 使用 C# 和IronXL在ASP.NET Core中下载 Excel 文件。从 MVC 控制器导出数据到 XLSX、CSV 和 XML 格式,并返回 MemoryStream 和 File() 函数。包含代码示例。 阅读更多 已更新2026年3月1日 如何在Blazor中使用IronXL导出 Excel 文件 学习如何使用IronXL在Blazor Server 应用程序中将数据导出到 Excel。本指南涵盖项目设置、服务设计、条件格式设置、多工作表报表和错误处理,并提供完整的 C# 代码示例。 阅读更多 已更新2026年2月27日 如何在 C# 中读取 Excel 文件而不是使用 StreamReader 了解为什么 StreamReader 无法读取 Excel 文件,以及如何在 C# .NET中使用IronXL从磁盘或内存流加载 XLSX 和 XLS 工作簿。 阅读更多 如何在 C# 中将 XLS 转换为 XLSX 文件如何在 C# 中写入 CSV 文件
已更新2026年3月1日 在.NET C# 中下载 Excel 文件:将数据导出为 XLSX、CSV 等格式 使用 C# 和IronXL在ASP.NET Core中下载 Excel 文件。从 MVC 控制器导出数据到 XLSX、CSV 和 XML 格式,并返回 MemoryStream 和 File() 函数。包含代码示例。 阅读更多
已更新2026年3月1日 如何在Blazor中使用IronXL导出 Excel 文件 学习如何使用IronXL在Blazor Server 应用程序中将数据导出到 Excel。本指南涵盖项目设置、服务设计、条件格式设置、多工作表报表和错误处理,并提供完整的 C# 代码示例。 阅读更多
已更新2026年2月27日 如何在 C# 中读取 Excel 文件而不是使用 StreamReader 了解为什么 StreamReader 无法读取 Excel 文件,以及如何在 C# .NET中使用IronXL从磁盘或内存流加载 XLSX 和 XLS 工作簿。 阅读更多