C# 和 Excel 数据:实用指南
本文详细介绍了使用 C# 读取和操作 Excel 数据的有效方法。 提供的示例说明了打开 Excel 文件、复制其内容以及搜索电子邮件地址。 然而,直接访问和处理单元格值需要了解 Excel 独特的数据结构。
Excel 的数据结构:命名范围
与典型数组不同,Excel 使用命名范围来存储数据。 访问特定单元格需要引用其范围名称(例如,左上角单元格为“A1”)。
利用Range
对象
C# Excel.Range
对象表示 Excel 工作表中的一个单元格或一组单元格。 get_Range
对象的 Excel.Worksheet
方法检索特定的 Range
对象。例如:
<code class="language-csharp">Excel.Range range = worksheet.get_Range("A1", Missing.Value);</code>
访问单元格值:Text
与 Value2
Text
属性返回用户可见的文本,而 Value2
提供基础值(不带格式或舍入):
<code class="language-csharp">string userVisibleText = range.Text; string rawValue = range.Value2;</code>
迭代单元格范围
foreach
循环有效地迭代一系列单元格:
<code class="language-csharp">foreach (Excel.Range cell in range1) { string text = cell.Text; string value = cell.Value2; }</code>
资源管理:适当的清理
为了高效的资源管理,请按照与创建相反的顺序释放 Excel 对象。 由于 Excel.Application
和 Excel.Workbook
没有实现 IDisposable
,因此使用自定义发布函数(如示例中的 ReleaseRCM
):
<code class="language-csharp">if (wkb != null) ExcelTools.OfficeUtil.ReleaseRCM(wkb); if (excel != null) ExcelTools.OfficeUtil.ReleaseRCM(excel);</code>
完整代码示例
此 C# 代码演示了访问和显示单元格 A1 的值:
<code class="language-csharp">using System; using ExcelTools = Ms.Office; using Excel = Microsoft.Office.Interop.Excel; namespace ExcelDemo { class Program { static void Main(string[] args) { string filePath = @"C:\Users\Chris\Desktop\TestSheet.xls"; Console.WriteLine(filePath); Excel.Application excelApp = null; Excel.Workbook workbook = null; try { excelApp = new Excel.Application(); workbook = ExcelTools.OfficeUtil.OpenBook(excelApp, filePath, false, false, true); Excel.Worksheet sheet = workbook.Sheets["Data"] as Excel.Worksheet; if (sheet != null) { Excel.Range cell = sheet.get_Range("A1", Missing.Value); string a1Value = cell != null ? cell.Text.ToString() : ""; Console.WriteLine("A1 value: {0}", a1Value); } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (workbook != null) ExcelTools.OfficeUtil.ReleaseRCM(workbook); if (excelApp != null) ExcelTools.OfficeUtil.ReleaseRCM(excelApp); } } } }</code>
结论
在 C# 中成功处理 Excel 数据取决于理解 Excel 基于范围的结构。使用 Excel.Range
对象及其属性,以及仔细的资源管理,可以实现高效、可靠的数据访问和操作。
以上是如何使用C#高效读取和操作Excel数据?的详细内容。更多信息请关注PHP中文网其他相关文章!