如何在perl中使用OLE在excel中查找具有匹配字符串的精确单元格
我正在尝试使用find命令在excel工作表中查找精确的字符串。 我成功地找到了有字符串的单元格,问题是 给定精确的字符串,我找不到匹配的单元格 该场景解释如下: 情景: 具有以下值的Excel表格 C1(值):ABCD D1(值):ABCDEFABCD 输入搜索字符串:ABCD 预期值:3(C) 产出:4(D) 下面是我使用的代码:如何在perl中使用OLE在excel中查找具有匹配字符串的精确单元格,perl,excel,ole,Perl,Excel,Ole,我正在尝试使用find命令在excel工作表中查找精确的字符串。 我成功地找到了有字符串的单元格,问题是 给定精确的字符串,我找不到匹配的单元格 该场景解释如下: 情景: 具有以下值的Excel表格 C1(值):ABCD D1(值):ABCDEFABCD 输入搜索字符串:ABCD 预期值:3(C) 产出:4(D) 下面是我使用的代码: use Win32::OLE; use Win32::OLE qw(in with); use Win32::OLE::Variant; use Win32::O
use Win32::OLE;
use Win32::OLE qw(in with);
use Win32::OLE::Variant;
use Win32::OLE::Const 'Microsoft Excel';
$Excel = Win32::OLE->new('Excel.Application');
$Excel->{'Visible'} = 0; #0 is hidden, 1 is visible
$Excel->{DisplayAlerts}=0; #0 is hide alerts
# Open File and Worksheet
my $Book = $Excel->Workbooks->Open ('D:\\all_files.csv'); # open Excel file
$Sheet = $Book->Worksheets(1);
# Find Last Column and Row
$search_string = "ABCD";
my $Row_index = $Sheet->UsedRange->Find({What=>$search_string,
SearchDirection=>xlPrevious,
SearchOrder=>xlByRows})->{Row};
$Book->Close();
$Excel->Quit();
请帮我克服这个困难。提前感谢。添加标志
LookAt=>xlWhole
,因为它匹配整个字符串
另外,您为什么决定使用xlPrevious
最后一件事-为了进行合理性检查-也使用
LookIn=>xlValues
,因为您不是在寻找公式。是否有任何代码可以在excel中找到字符串的精确位置?正如我建议的,只需在:$Sheet->UsedRange->find中添加标志LookAt=>xlother
({What=>$search\u string,SearchDirection=>xlPrevious,SearchOrder=>xlByRows})