如何使用PowerShell在整个excel工作簿中搜索特定字符串

时间:2017-08-18 18:25:28

标签: excel string powershell full-text-search

我需要在excel电子表格中搜索特定的字符串,其中包含多个工作表。我正在寻找一种搜索excel文件的全部内容的方法,类似于Excel中的“查找全部”选项,其范围设置为工作簿,而不仅仅是工作表。

如果在常规文件中存在与特定字符串的搜索字符串类似的内容,那将是非常好的,(例如)

gci xcelfile.xls | select-string -pattern $mySearchString

我搜索了互联网,但我没有看到很多现有信息,使用PowerShell搜索现有excel文件的内容。我希望我能在这里得到一些指示,以实现我的目标。

非常感谢任何帮助。 谢谢 唐

1 个答案:

答案 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()