我需要在excel电子表格中搜索特定的字符串,其中包含多个工作表。我正在寻找一种搜索excel文件的全部内容的方法,类似于Excel中的“查找全部”选项,其范围设置为工作簿,而不仅仅是工作表。
如果在常规文件中存在与特定字符串的搜索字符串类似的内容,那将是非常好的,(例如)
gci xcelfile.xls | select-string -pattern $mySearchString
我搜索了互联网,但我没有看到很多现有信息,使用PowerShell搜索现有excel文件的内容。我希望我能在这里得到一些指示,以实现我的目标。
非常感谢任何帮助。 谢谢 唐
答案 0 :(得分:1)
打开Excel
加载文件
遍历每个工作表
搜索范围
循环查找下一个输出索引$ Column $ Row
退出Excel
$File = "C:\TEST.xlsx"
$SearchString = "TEST"
$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open($File)
for($i = 1; $i -lt $($Workbook.Sheets.Count() + 1); $i++){
$Range = $Workbook.Sheets.Item($i).Range("A:Z")
$Target = $Range.Find($SearchString)
$First = $Target
Do
{
Write-Host "$i $($Target.AddressLocal())"
$Target = $Range.FindNext($Target)
}
While ($Target -ne $NULL -and $Target.AddressLocal() -ne $First.AddressLocal())
}
$Excel.Quit()