使用 C# 掌握 Excel 数据提取
在 C# 中有效处理 Excel 文件需要清楚地了解命名范围。 不依赖数组索引,而是利用 get_Range()
方法进行精确的单元格选择。
例如,要访问单元格 A1:
<code class="language-csharp">Excel.Worksheet sheet = workbook.Sheets["Sheet1"] as Excel.Worksheet; Excel.Range range = sheet.get_Range("A1", Missing.Value);</code>
range
现在代表单元格 A1。 使用以下方式访问其内容:
range.Text
:显示单元格的格式化文本。range.Value2
:检索基础单元格值(未格式化)。迭代单元格范围:
<code class="language-csharp">Excel.Range range = sheet.get_Range("A1:A5", Missing.Value); if (range != null) { foreach (Excel.Range r in range) { string userText = r.Text; object cellValue = r.Value2; //Note: object type for flexibility } }</code>
至关重要的是,使用 Value2
而不是 Value
以避免潜在的 C# 限制。
基本清理
通过在使用后释放 COM 对象来防止内存泄漏:
<code class="language-csharp">if (wkb != null) ExcelTools.OfficeUtil.ReleaseRCM(wkb); if (excel != null) ExcelTools.OfficeUtil.ReleaseRCM(excel);</code>
ReleaseRCM
是用于释放 COM 资源的自定义函数。
示例性代码片段
<code class="language-csharp">using ExcelTools = Ms.Office; // Assuming a custom namespace using Excel = Microsoft.Office.Interop.Excel; ... Excel.Workbook wkb = ExcelTools.OfficeUtil.OpenBook(excel, file); ... Excel.Worksheet sheet = wkb.Sheets["Data"] as Excel.Worksheet; Excel.Range range = sheet.get_Range("A1", Missing.Value); string cellA1Text = range.Text.ToString(); ...</code>
主要考虑因素
false
.Type.Missing
作为可选参数。这种增强的方法可确保您的 C# 应用程序中高效可靠的 Excel 数据处理。
以上是如何使用C#高效读取Excel文件中的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!