我正在使用c#程序在Excel工作表中搜索文本。我有一个名为“ MASTER”的Excel工作表,并且在该工作表中,B列中有很多文本。我想寻找 B列中的文本“苹果”。这是我的代码:
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列中搜索输入语音“苹果”。但是,在那一栏中,有很多苹果。 “ applepie”,“ applejam”,“ apple”等,上述代码的结果为“ applepie”。我认为是因为它只是发现文本包含“ apple”。我的问题是如何使它找到确切的字符串,以便输出将是B列中的“ apple”?
答案 0 :(得分:1)
Range.Find
还有许多其他参数(请参见documentation),尤其是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
答案 1 :(得分:0)
您可以使用方法Split
将每个单词视为数组元素
range1 = workSheet.Columns["B:B"] as Excel.Range;
var words = range1.Split(' ');
foreach(var word in words)
{
if (word == utterance)
Console.WriteLine(word);
}