问题描述
我想使用Lynq查询或类似方法基于某一列中的值从Excel中仅读取特定行,而不是遍历整个行。如果我确切地知道列索引,下面的技巧就可以解决问题。
var result = workSheet.Rows().Where(x => x.Cell(6)?.Value.ToString() == constant).FirstOrDefault();
由于列索引可以随时更改,因此我想使用列名读取行数据。即使语法支持(Cell("ColumnName"))
,但每次结果都为空。
预先感谢 子
解决方法
您可以使用XLHelper.GetColumnNumberFromLetter()
来获取任何给定列字母的正确列号。
因此您的代码将更改为:
var result = workSheet.Rows()
.Where(x => x.Cell(XLHelper.GetColumnNumberFromLetter("F"))?.Value.ToString() == constant)
.FirstOrDefault();