使用 IRONXL 如何在 C# 中导入 Excel 文件 Curtis Chau 已更新:2026年1月19日 下载 IronXL NuGet 下载 DLL 下载 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 使用IronXL (一个无需安装 Microsoft Excel 即可读取 XLS、XLSX、CSV 文件的.NET库)在 C# 中导入 Excel 文件。 只需使用 WorkBook.Load("file.xlsx") 即可打开文件并访问单元格数据,语法直观,如 sheet["A1"]。 Microsoft Excel 是一款功能强大的电子表格软件,可帮助用户进行数据组织、展示和分析。 然而,在 C# 中以编程方式处理 Excel 可能会充满挑战,尤其是在处理不同的电子表格文件类型或部署服务器上未安装 Microsoft Office 时。 IronXL软件库为 C# 应用程序提供了全面的解决方案,用于导入和读取 Excel 文件,支持包括XLSX 、XLS 和CSV 文件在内的各种格式。 IronXL是什么?为什么我应该使用它来进行Excel导入? IronXL是一个.NET Excel 库,它优先考虑易用性、准确性和速度。 它可以帮助您导入和读取 Excel 文档,并以闪电般的速度高效地创建和编辑 Excel 文件。 与需要 Microsoft Office Interop 的传统方法不同, IronXL可以独立运行,无需依赖 MS Office Interop。 这意味着即使不安装 Excel,您也可以获得读取 Excel 文件的所有功能。 这使得IronXL成为开发人员在 C# 应用程序中导入和读取 Excel 文件的强大工具,无论您是构建ASP.NET Web 应用程序、桌面应用程序还是基于云的解决方案。 IronXL可在 Windows、 Linux 、 macOS 、 Docker 、 Azure和AWS等所有平台上使用。 它兼容所有.NET Framework版本,并支持现代.NET Core和.NET 5+ 环境。 IronXL是一个功能强大的库,可以集成到控制台、桌面和 Web ASP.NET应用程序以及Blazor应用程序中。 它支持不同的工作簿格式,如 XLS 和 XLSX 文件、XSLT 和 XLSM、CSV 和 TSV,因此非常适合需要在电子表格文件类型之间进行转换的场景。 IronXL有哪些关键特性使其成为Excel导入的必备工具? 无需安装 Excel 即可打开、读取 Excel 文件并搜索不同电子表格格式(例如 XLS/CSV/TSV/XLSX 文件)中的数据 *将 Excel 工作表导出为多种格式,包括 XLS/XLSX/CSV/TSV/JSON 甚至HTML 使用密码对 XLSM/XLTX/XLSX 文件进行加密和解密,以增强安全性 将 Excel 表格导入为System.Data.DataSet和System.Data.DataTable对象,以实现无缝数据库集成 每次编辑工作表时,Excel 文件中的公式都会自动重新计算。 直观的单元格范围设置,使用 WorkSheet["A1:B10"] 简单语法选择范围 使用内置方法对单元格区域、列和行进行排序 全面的单元格样式设置,包括字体自定义、背景颜色、边框和对齐方式以及编号格式。 如何在C#中导入Excel工作簿? 开始导入Excel文件前我需要准备什么? 要在 C# 中使用IronXL读取 Excel 文件,请确保您的计算机上已安装以下组件: Visual Studio - 这是用于开发 C# .NET应用程序的官方 IDE。 Visual Studio 提供了出色的 IntelliSense 支持和调试工具,使处理 Excel 文件更加容易。 您可以从微软网站下载并安装 Visual Studio。 社区版是免费的,足以满足大多数开发需求。 IronXL - 这是一个帮助你在 C# 中处理给定路径的 Excel 表格的库。 必须先将其安装到您的 C# 程序中才能使用。 IronXL可以轻松地从NuGet网站下载,也可以通过 Visual Studio 工具中的"管理NuGet程序包"界面直接安装。 如果您喜欢手动安装,也可以直接下载.NET Excel DLL文件。 对于生产环境部署,您需要应用许可证密钥来移除水印并启用全部功能。 可以使用试用版进行开发和测试。 我应该在代码中添加哪些命名空间? 安装好 Visual Studio 和IronXL后,引用IronXL程序集即可在源代码中使用IronXL 。 在新项目的文件顶部添加以下代码行,其中将使用 IronXL 功能: using IronXL; using IronXL; $vbLabelText $csharpLabel 此单一命名空间导入提供了对 Excel 操作所需所有核心功能的访问。 如果您正在使用 Excel 的特定功能(例如 图表或条件格式) ,则可能需要从IronXL库导入其他命名空间。 如何加载并打开Excel文件? 微软Excel电子表格也称为Excel工作簿。 每个工作簿包含多个工作表(也称为工作表),单个工作表包含按行和列组织的表格单元格及其各自的值。 要打开和读取 Excel 文件,请使用IronXL库中的WorkBook类和Load方法加载它。 代码如下 // Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV WorkBook workbook = WorkBook.Load("test.xlsx"); // You can also load from a stream using (var stream = File.OpenRead("test.xlsx")) { WorkBook streamWorkbook = WorkBook.Load(stream); } // Or load CSV files with custom delimiters WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ","); // Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV WorkBook workbook = WorkBook.Load("test.xlsx"); // You can also load from a stream using (var stream = File.OpenRead("test.xlsx")) { WorkBook streamWorkbook = WorkBook.Load(stream); } // Or load CSV files with custom delimiters WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ","); $vbLabelText $csharpLabel 这将打开工作簿实例引用变量中的 Excel 文件。 由于一个工作簿可以包含多个工作表,因此您可以通过多种方式访问它们。 以下代码打开工作表实例变量中的第一个工作表: // Get the first worksheet WorkSheet sheet = workbook.WorkSheets.First(); // Or access by worksheet name WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1"); // Or by index (zero-based) WorkSheet indexedSheet = workbook.WorkSheets[0]; // Get the first worksheet WorkSheet sheet = workbook.WorkSheets.First(); // Or access by worksheet name WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1"); // Or by index (zero-based) WorkSheet indexedSheet = workbook.WorkSheets[0]; $vbLabelText $csharpLabel 这将打开 Excel 文件的第一个工作表,现在可以从该工作表中读取和写入 Excel 数据。 对于更高级的场景,您可能需要管理多个工作表或以编程方式创建新的电子表格。 打开 Excel 文件 包含员工信息的示例 Excel 文件,将使用 C# 导入。 数据包括姓名、职位(经理、总监、员工、总裁)和相应的薪资值。 导入后如何读取特定单元格的值? Excel 文件导入后,即可读取数据。 使用 IronXL 在 C# 中读取 Excel 文件数据非常简单容易。 您只需以标准 Excel 表示法(例如"A1"、"B2"等)提及单元格引用编号,即可读取 Excel 单元格值。 该库提供了多种访问单元格值的方法,具体取决于预期的数据类型。 下面的代码检索具有引用编号 "C2" 的单元格的值: // Select cells easily in Excel-notation and return the value int cellValue = sheet["C2"].IntValue; // Display the value Console.WriteLine(cellValue); // You can also access different data types string textValue = sheet["A2"].StringValue; decimal decimalValue = sheet["C2"].DecimalValue; double doubleValue = sheet["C2"].DoubleValue; DateTime dateValue = sheet["D2"].DateTimeValue; bool boolValue = sheet["E2"].BoolValue; // Check if cell is empty bool isEmpty = sheet["F2"].IsEmpty; // Select cells easily in Excel-notation and return the value int cellValue = sheet["C2"].IntValue; // Display the value Console.WriteLine(cellValue); // You can also access different data types string textValue = sheet["A2"].StringValue; decimal decimalValue = sheet["C2"].DecimalValue; double doubleValue = sheet["C2"].DoubleValue; DateTime dateValue = sheet["D2"].DateTimeValue; bool boolValue = sheet["E2"].BoolValue; // Check if cell is empty bool isEmpty = sheet["F2"].IsEmpty; $vbLabelText $csharpLabel 译文如下: 在 C# 中成功读取 Excel 文件后,调试控制台的输出如下。 程序已执行完毕,正在等待用户输入以关闭。 现在,让我们从打开的 Excel 文件中读取一系列单元格的数据。IronXL 可以使用熟悉的 Excel 表示法轻松处理单元格区域。 代码如下 // Read from a range of cells elegantly. foreach (var cell in sheet["A2:A6"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } // You can also work with entire rows or columns var row = sheet.GetRow(2); // Get row 3 (0-indexed) foreach (var cell in row) { Console.WriteLine($"Row cell value: {cell.Value}"); } // Or get a column var column = sheet.GetColumn(0); // Get column A foreach (var cell in column) { Console.WriteLine($"Column A value: {cell.Value}"); } // Read from a range of cells elegantly. foreach (var cell in sheet["A2:A6"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } // You can also work with entire rows or columns var row = sheet.GetRow(2); // Get row 3 (0-indexed) foreach (var cell in row) { Console.WriteLine($"Row cell value: {cell.Value}"); } // Or get a column var column = sheet.GetColumn(0); // Get column A foreach (var cell in column) { Console.WriteLine($"Column A value: {cell.Value}"); } $vbLabelText $csharpLabel 代码非常简单、干净和清晰。 可以使用简单的语法引用单元格范围,如 foreach 循环所示: sheet["A2:A6"],并且可以迭代每个单元格以获取其值。 在这里,您将在控制台输出中看到 A 列第 2 行到第 6 行的名称: 控制台输出显示使用 C# 成功读取包含姓名的 Excel 单元格区域 (A2:A6) 的过程。 有关读取和写入单元格值的更多详细信息,请查看这篇关于使用 C# 读取 Excel 文件的教程示例。 您还可以探索应用公式或使用命名区域等高级功能。 如何一次性导入整个工作表? IronXL 可用于一次性读取 Excel 表格,使用行和列索引。 当您需要处理工作表中的所有数据,或者将Excel 转换为 CSV 或 JSON 等其他格式时,此功能尤其有用。 以下IronXL代码示例可帮助您将整个 Excel 文件数据以相同的格式输出到控制台: WorkBook workbook = WorkBook.Load("test.xlsx"); WorkSheet sheet = workbook.WorkSheets.First(); // Traverse all rows of Excel WorkSheet for (int i = 0; i < sheet.Rows.Count(); i++) { // Traverse all columns of specific Row for (int j = 0; j < sheet.Columns.Count(); j++) { // Get the values string val = sheet.Rows[i].Columns[j].Value.ToString(); Console.Write("{0}\t", val); } Console.WriteLine(); } // Alternative method using LINQ for more efficient processing var allData = sheet.Rows.SelectMany(row => row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList(); WorkBook workbook = WorkBook.Load("test.xlsx"); WorkSheet sheet = workbook.WorkSheets.First(); // Traverse all rows of Excel WorkSheet for (int i = 0; i < sheet.Rows.Count(); i++) { // Traverse all columns of specific Row for (int j = 0; j < sheet.Columns.Count(); j++) { // Get the values string val = sheet.Rows[i].Columns[j].Value.ToString(); Console.Write("{0}\t", val); } Console.WriteLine(); } // Alternative method using LINQ for more efficient processing var allData = sheet.Rows.SelectMany(row => row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList(); $vbLabelText $csharpLabel 对于较大的 Excel 文件,您可能需要考虑使用DataTable或DataSet对象,以获得更好的性能和更便捷的数据操作: // Convert worksheet to DataTable for easier manipulation DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers // Process data using DataTable methods foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item}\t"); } Console.WriteLine(); } // Convert worksheet to DataTable for easier manipulation DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers // Process data using DataTable methods foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item}\t"); } Console.WriteLine(); } $vbLabelText $csharpLabel 输出文件 控制台输出成功显示了从 Excel 文件导入的员工数据,格式正确,显示了姓名、职位和薪资信息。 . 导入Excel文件后,下一步该怎么做? 本文演示了如何在未安装 Microsoft Excel 的情况下,使用 C# 导入和读取 Excel 文件。 它涵盖了从 Excel 电子表格中读取数据的多种方法,从单个单元格到整个工作表。 IronXL还可以帮助您在无需安装任何 Excel 的情况下,用 C#创建 Excel 文件。 成功导入 Excel 数据后,您可能想要探索其他功能: *数据处理*:对单元格区域进行排序、应用筛选器或对行和列进行分组 数据验证:实施数据验证规则以确保数据完整性 格式设置:应用单元格样式、条件格式或数字格式 图表和可视化**:创建图表或添加图像以增强数据呈现效果 *安全性:对工作簿或单个工作表设置密码保护 IronXL 提供了一个一体化解决方案,用于以编程方式实现所有与 Microsoft Excel 文档相关的任务。 您可以执行公式计算、字符串或数字排序、修剪和追加、查找和替换、合并和取消合并单元格、保存文件等等。 您可以编辑单元格值,还可以设置单元格数据格式,并验证电子表格数据。 它还支持CSV 文件,并可帮助您无缝处理 Excel 数据。 对于企业应用程序,可以考虑探索各种平台的部署选项,包括Docker 容器、 Azure Functions和AWS Lambda 。 IronXL提供免费试用,其 Lite 套餐可授权用于商业用途,价格仅为 $799 起。 该库提供了优秀的文档、教程和代码示例,可帮助您快速上手在 C# 应用程序中使用 Excel 文件操作。 常见问题解答 如何在不使用 Interop 的情况下在 C# 中导入和读取 Excel 文件? 您可以使用 IronXL 库在 C# 中导入和读取 Excel 文件。只需使用 WorkBook.Load("file.xlsx") 加载 Excel 文件即可访问并处理数据,无需安装微软 Excel。 IronXL 库兼容哪些平台? IronXL 兼容所有 .NET Framework,并可用于包括 Windows、Linux、MacOS、Docker、Azure 和 AWS 在内的多个平台。 我可以使用 IronXL 编辑 Excel 文件而无需安装 Microsoft Excel 吗? 是的,IronXL 允许您在 C# 中以编程方式创建和编辑 Excel 文件,而无需在系统上安装 Microsoft Excel。 IronXL 可以处理哪些 Excel 格式? IronXL 支持各种 Excel 文件格式,如 XLS、XLSX、CSV、TSV 等,能够轻松导入和操作数据。 在 C# 项目中使用 IronXL 有哪些先决条件? 要使用 IronXL,请确保已安装 Visual Studio。您可以通过 NuGet 软件包管理器添加 IronXL 到您的项目,或通过下载并引用 .NET Excel DLL。 如何在 C# 中使用 IronXL 加载 Excel 工作簿? 要在 C# 中加载 Excel 工作簿,可以使用 IronXL 的 WorkBook.Load("path/to/file.xlsx") 方法,可以打开并操作工作簿。 是否可以使用 IronXL 处理 Excel 公式? 可以,IronXL 可以在每次编辑工作表时无缝地处理和重新计算 Excel 公式,确保数据计算的准确性。 如何使用 IronXL 从特定单元格读取数据? 要从特定单元格读取数据,可以使用 IronXL 语法如 sheet["B2"].StringValue 来获取 B2 单元格的值。 我可以使用 IronXL 遍历 Excel 表格的单元格范围吗? 是的,您可以使用 IronXL 遍历单元格范围,使用语法如 foreach (var cell in sheet["A1:C3"]) 来逐个处理每个单元格。 如何将 IronXL 集成到 ASP.NET 应用程序中? 可以通过 NuGet 添加库并在项目中引用,在 ASP.NET 应用程序中轻松集成 IronXL,实现 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# 中将 `DataTable` 导出为 CSV 文件如何在 C# 中将数据集转换...
已更新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 工作簿。 阅读更多