使用ClosedXML从Excel中仅读取特定行

问题描述

我想使用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();