首页 > 解决方案 > 在 C# 程序的 excel 工作表中查找确切的字符串

问题描述

我正在使用 c# 程序在我的 excel 表中搜索文本。我有一个名为“MASTER”的excel表,在该表中,B列中有很多文本。我想在B列中查找文本“apple”。这是我的代码:

Excel.Worksheet workSheet;
workSheet = (Excel.Worksheet)xlWorkBook.Worksheets["MASTER"];
string result;
string utterance = "apples";

range1 = workSheet.Columns["B:B"] as Excel.Range;
Excel.Range findRange 
findRange = range1.Find(utterance);
result = (string) (range2.Cells[findRange1.Row, 2] as Excel.Range).Value2;

它可以在 B 列中搜索输入话语“apples”。但是,在那一栏中,有很多苹果。“applepie”、“applejam”、“apple”等,上面代码的结果是“applepie”。我认为是因为它只是找到包含“apple”的文本。我的问题是如何让它找到确切的字符串,所以输出将是 B 列的“apple”?

标签: c#excel

解决方案


Range.Find还有许多其他参数(请参阅文档),尤其是LookAt,请参阅下面的演示:

var app = new Excel.Application();
var workbook = app.Workbooks.Open("C:\\Path\\File.xlsx");
var sheet = workbook.Worksheets["MASTER"];
var range = (Excel.Range)sheet.Columns["B:B"];
var result = range.Find("apples", LookAt: Excel.XlLookAt.xlWhole);
var address = result.Address;//cell address
var value = result.Value2;//cell value
//close or do something else

推荐阅读