使用ClosedXML在Range中查找stringC#

我希望能够find一个特定的string是否存在于使用ClosedXML的范围内,但是,我在文档中找不到任何find命令。 目前,我循环遍历1000行,以查找string是否存在。 有没有更有效的方法来做到这一点?

这是我的代码的一个例子:

for (int j = 3; j <= PipeSheet.LastRowUsed().RowNumber(); j ++) { if ((PipeSheet.Cell(j, ProdCodeColumnInPipe).Value.ToString().Trim() == SheetToEdit.Cell(i, ProdCodeColumnInMain).Value.ToString().Trim() & PipeSheet.Cell(j, 3).Value.ToString().Trim() == SheetToEdit.Cell(i, RegionCodeInMain).Value.ToString().Trim())) { SheetToEdit.Cell(i, ColumnToEdit).Value = "+"; if ((new[] { "Open", "Under Review" }).Contains(PipeSheet.Cell(j, 5).Value.ToString().Trim()) & (new[] { "Forecast"}).Contains(PipeSheet.Cell(j, 4).Value.ToString().Trim())) { if (FirstColumnHighlight > 1 & LastColumnHighlight > 1) { for (int k = FirstColumnHighlight; k <= LastColumnHighlight; k++) { SheetToEdit.Cell(i, k).Style.Fill.BackgroundColor = XLColor.FromArgb(255, 255, 0); } } } } } 

首先,你的目标是最好的解决使用条件格式。

但要回答你的问题,你可以search一个string:

 sheet.CellsUsed(cell => cell.GetString() == searchstring) 

参考: https : //github.com/ClosedXML/ClosedXML/wiki/Better-lambdas

– 更新 –

https://github.com/ClosedXML/ClosedXML/pull/399有一个pull请求来帮助解决这个问题,例如&#xFF1A;

  foundCells = ws.Search("searchText", CompareOptions.OrdinalIgnoreCase);