【问题标题】:Reading only specific rows from Excel using ClosedXML使用 ClosedXML 从 Excel 中仅读取特定行
【发布时间】:2020-09-29 09:47:32
【问题描述】:

我想根据其中一列中的值使用 Lynq 查询或类似查询,而不是循环遍历整行,仅读取 Excel 中的特定行。如果我完全知道列索引,下面的一个就可以了。

var result = workSheet.Rows().Where(x => x.Cell(6)?.Value.ToString() == constant).FirstOrDefault();

由于列索引可以随时更改,我想使用列名读取行数据。即使语法支持 (Cell("ColumnName")) ,结果每次都是空的。

提前致谢 子目录

【问题讨论】:

  • 列名是什么意思?电子表格具有行号和列字母或数字。您是指列字母吗,例如专栏M?
  • 我的意思是列字母..而不是使用 Cell(6) ,我想使用 cell("ColumnLetter") ...即使语法支持它..它总是返回 null

标签: excel linq closedxml


【解决方案1】:

您可以使用XLHelper.GetColumnNumberFromLetter() 获取任何给定列字母的正确列号。

所以你的代码会变成:

var result = workSheet.Rows()
    .Where(x => x.Cell(XLHelper.GetColumnNumberFromLetter("F"))?.Value.ToString() == constant)
    .FirstOrDefault();

【讨论】:

  • 这是参数超出范围异常。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2015-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
相关资源
最近更新 更多