跳至页脚内容
使用 IRONXL

用 IronXL.Excel 在 C# 中读取 Excel 文件的最佳方法

你们好,如果你一直在寻找用 C# 阅读 Excel 文件的最佳方法,而无需进行复杂的设置,那么本教程正是你所需要的。 IronXL for .NET 是一个.NET 库,它使 Excel 文件的管理变得异常简单,最棒的是什么? 无需在系统中安装 Microsoft Excel。

以编程方式处理 Microsoft Excel 文件历来具有挑战性。 许多库需要依赖 Office 或产生冗长、容易出错的代码。 IronXL 通过提供一个简洁、直观的 API,以最小的工作量处理 XLSX、XLS 和 CSV 文件,改变了这一现状。 准备好开始了吗? 注册免费试用版并跟进。

在 C# 中读取 Excel 文件的最佳方法是什么? 在 C# 中读取 Excel 文件的最佳方法是使用 IronXL 这样独立于 Microsoft Office 运行的专用库。这种方法在 .NET Framework 和 .NET Core 项目中都能正常运行,让用户解析电子表格数据时不会为版本兼容性而头疼。 IronXL.Excel 基本上提供了一种 Excel 阅读器,可将整个文件加载到工作簿对象中,让您直接访问每个工作表、行、列和单元格。 与需要管理隐藏复杂性的基于 XML 的解决方案不同,IronXL.Excel 的 API 可让您使用熟悉的 Excel 符号(如 sheet["A1"])引用单元格,或使用 foreach 循环遍历范围。
立即开始使用 IronXL。
green arrow pointer

如何在 Visual Studio 中安装 Excel 阅读器库? 通过 Visual Studio 中的 NuGet 安装只需几秒钟。 在软件包管理器控制台中运行此命令: ```shell :ProductInstall ``` 该库支持多个 .NET 版本,因此无论您的应用程序是针对 .NET Framework 4.6.2+ 还是 .NET Core 3.1+,IronXL 都能无缝集成。 安装完成后,将 IronXL 引用添加到代码文件中,就可以开始读取 Excel 文件了。

如何加载和读取 Excel 工作簿? 加载 Excel 工作簿只需一行代码。 WorkBook.Load 方法接受文件名并自动检测格式,XLSX 文件、XLS 文件或 CSV 文件的工作方式相同。 ```cs class Program { public static void Main(string[] args) { // Load an Excel workbook from file WorkBook workbook = WorkBook.Load("financial_report.xlsx"); // Access the first worksheet by index WorkSheet worksheet = workbook.WorkSheets[0]; // Or get a specific sheet by name WorkSheet dataSheet = workbook.GetWorkSheet("Expenses"); Console.WriteLine($"Loaded workbook with {workbook.WorkSheets.Count} sheets"); } } ``` ### 加载工作簿的控制台确认 ![使用 IronXL 在 C# 中读取 Excel 文件的最佳方法:图片 1 - 用于确认已加载工作簿的控制台输出](/static-assets/excel/blog/best-way-read-excel-csharp/best-way-read-excel-csharp-1.webp)。 WorkBook 对象代表整个 Excel 工作簿,而每个 WorkSheet 实例对应该工作簿中的单个工作表。 这种结构反映了 Excel 格式组织数据的方式,使 API 对于已经熟悉电子表格概念的开发人员来说更加直观。 加载文件时,IronXL 会将所有单元格、公式和格式解析到内存中。 然后,您可以读取数值、修改内容或将更改保存回磁盘。 有关加载选项的其他信息,请参阅 [加载电子表格文档](/csharp/excel/how-to/load-spreadsheet/)。

如何从 Excel 工作表中读取单元格值? 读取单元格涉及通过地址访问单元格或通过范围迭代。 IronXL 提供了 StringValue、IntValue 和 DecimalValue 等强类型属性,可将单元格数据解析为正确的系统类型。 ```cs using IronXL; using System; WorkBook workbook = WorkBook.Load("Products.xlsx"); WorkSheet sheet = workbook.DefaultWorkSheet; // Read individual cell values with type conversion string productName = sheet["A2"].StringValue; int quantity = sheet["B2"].IntValue; decimal price = sheet["C2"].DecimalValue; // Check for null or empty cells before processing var cell = sheet["D2"]; if (cell.Value != null) { Console.WriteLine($"Product: {productName}, Qty: {quantity}, Price: {price}"); } // Access cells using row and column index (zero-based) int columnIndex = 0; var firstCell = sheet.Rows[1].Columns[columnIndex]; ``` ### 输出 ![使用 IronXL 在 C# 中读取 Excel 文件的最佳方法:图片 2 - 使用 IronXL 读取 Excel 的简单输出](/static-assets/excel/blog/best-way-read-excel-csharp/best-way-read-excel-csharp-2.webp)。 每个单元格对象都包含原始值和格式化元数据。 当您需要对列进行编程式访问而不是基于字母的引用时,int columnIndex 方法就能很好地发挥作用。 如果单元格中包含公式,IronXL 会对其进行评估并返回计算结果。

如何迭代行和单元格? 处理整个文件通常需要循环浏览行和单元格。 foreach模式使其优雅易读,非常适合数据提取或验证任务。 ```cs using IronXL; using System; WorkBook workbook = WorkBook.Load(@"financial_report.xlsx"); WorkSheet sheet = workbook.WorkSheets[0]; // Skip column headers in first row, process data rows foreach (var row in sheet["A2:D7"]) { Console.WriteLine($"Cell {row.AddressString}: {row.Text}"); } // Iterate through specific row range for (int i = 1; i < sheet.Rows.Length; i++) { var currentRow = sheet.Rows[i]; // Access each column in the row foreach (var cell in currentRow) { if (cell.Value != null) { Console.Write($"{cell.StringValue}\t"); } } Console.WriteLine(); } ``` ![使用 IronXL 在 C# 中读取 Excel 文件的最佳方法:图片 3 - 行间迭代的输出](/static-assets/excel/blog/best-way-read-excel-csharp/best-way-read-excel-csharp-3.webp)。 范围语法["A2:D100"]创建了一个可迭代的单元格集合。 这种方法可以有效处理大型电子表格,而不会加载不必要的数据。 当您需要逐行或逐列处理时,也可以直接访问行和列集合。

如何解析多种 Excel 格式? IronXL 可以透明地处理各种 Excel 格式。 无论您是在阅读传统的 XLS 文件、现代的 XLSX 文件还是普通的 CSV 文件,所有格式的代码都是一样的。 ```cs using IronXL; // Load different format types - the API remains consistent WorkBook xlsxBook = WorkBook.Load("Modern.xlsx"); WorkBook xlsBook = WorkBook.Load("Legacy.xls"); WorkBook csvBook = WorkBook.Load("Data.csv"); // All workbooks expose identical worksheet access WorkSheet sheet1 = xlsxBook.DefaultWorkSheet; WorkSheet sheet2 = xlsBook.DefaultWorkSheet; WorkSheet sheet3 = csvBook.DefaultWorkSheet; // Write to different formats xlsxBook.SaveAs("Output.csv"); csvBook.SaveAs("Converted.xlsx"); ``` 当您的程序必须处理来自不同来源的文件时,这种格式的灵活性会很有帮助。 该库可通过文件扩展名和内容标题自动检测 Excel 格式,因此您不需要特定格式的代码路径。 对于 CSV 文件,IronXL 尊重逗号分隔符和带引号字符串值等常见约定。

我可以执行哪些高级操作? 除基本阅读外,IronXL 还支持聚合计算、LINQ 查询和数据操作。 这些先进的功能可将原始电子表格数据转化为可操作的见解。 ```cs using IronXL; using System; using System.Linq; WorkBook workbook = WorkBook.Load("Financials.xlsx"); WorkSheet sheet = workbook.DefaultWorkSheet; // Calculate sum of values in a range decimal totalSales = sheet["B2:B50"].Sum(); // Use LINQ for advanced queries decimal maxValue = sheet["C2:C50"].Max(c => c.DecimalValue); var highValues = sheet["C2:C50"].Where(c => c.DecimalValue > 1000); // Create instance of calculated results Console.WriteLine($"Total: {totalSales}, Maximum: {maxValue}"); // Modify and save changes sheet["D2"].Value = totalSales; workbook.Save(); ``` ### 高级阅读操作输出 ![使用 IronXL 在 C# 中读取 Excel 文件的最佳方法:图片 4 - 高级读取操作控制台输出](/static-assets/excel/blog/best-way-read-excel-csharp/best-way-read-excel-csharp-4.webp)。 LINQ 兼容性带来了强大的数据处理功能,无需编写手动循环。 您可以使用熟悉的 C# 模式对单元格值进行筛选、排序和汇总。 对于带有列标题的表格,IronXL 甚至可以通过标题名称而不是单元格地址来引用数据。 这些功能表明 IronXL 不仅仅是一个 Excel 阅读器,它还是一个完整的电子表格操作库。 无论您是需要创建报告、验证数据还是导出到数据库,API 都能提供相应的工具,而不会出现异常处理噩梦或 Office 依赖性问题。 ## 摘要 用 C# 阅读 Excel 文件并不复杂。 IronXL 提供了一种现代的、无依赖性的方法,可在 .NET Framework 和 .NET Core 项目中使用。 从加载简单的 XLSX 文件到对单元格数据执行复杂的 LINQ 查询,该库都能以简洁、可读的代码进行处理。 本文章中的示例演示了您日常使用的核心模式:加载工作簿、访问工作表、读取单元格值和迭代数据。 这些模式可以从简单的脚本扩展到企业应用程序,无需修改。 准备好简化您的 Excel 文件处理过程了吗? [购买许可证](/csharp/excel/licensing/)以释放 IronXL 在生产中的全部潜能,或浏览 [ 完整的 API 参考](/csharp/excel/object-reference/api/),了解有关可用方法和属性的更多详细信息。

常见问题解答

用 C# 阅读 Excel 文件的最佳方法是什么?

在 C# 中读取 Excel 文件的最佳方法是使用 IronXL 库。它允许您处理 Excel 文件,而无需在系统中安装 Microsoft Excel。

我需要安装 Microsoft Office 来使用 IronXL 吗?

不,使用 IronXL 不需要安装 Microsoft Office。它是一个独立的 .NET 库,专为 Excel 文件操作而设计。

IronXL.Excel 可读取哪些类型的 Excel 文件?

IronXL 可以读取各种类型的 Excel 文件,包括 XLSX、XLS 和 CSV 格式。

IronXL 易于集成到 C# 项目中吗?

是的,IronXL 的设计易于集成到 C# 项目中,为开发人员提供简单的 API。

IronXL 可以解析 CSV 文件吗?

是的,除了 XLSX 和 XLS 文件外,IronXL 还可以解析 CSV 文件。

使用 IronXL.Excel 进行 Excel 文件操作有哪些优势?

IronXL.Excel 设置简单明了,不依赖 Microsoft Excel,支持多种 Excel 文件格式,可高效进行各种文件操作。

使用 IronXL 是否需要复杂的设置?

不,IronXL 不需要复杂的设置,使希望轻松管理 Excel 文件的开发人员可以使用它。

为什么选择 IronXL 而不是 Interop 来处理 Excel 文件?

与 Interop 相比,IronXL.Excel 更受青睐,因为它简单易用,不需要 Microsoft Excel,而且在处理 Excel 文件时性能更好。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。