$ErrorActionPreference = "SilentlyContinue"
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false
$files = Get-ChildItem C:\ -Filter *.xlsx -Recurse -File -ErrorAction SilentlyContinue
foreach ($file in $files) {
$workbook = $null
try {
$workbook = $excel.Workbooks.Open($file.FullName, 0, $true)
foreach ($sheet in $workbook.Worksheets) {
$used = $sheet.UsedRange
$values = $used.Value2
if ($null -eq $values) { continue }
if ($values -is [Array]) {
foreach ($value in $values) {
if ("$value" -match '(^|[^\d])10[./-]11([^\d]|$)') {
Write-Host "НАЙДЕНО: $($file.FullName) | Лист: $($sheet.Name) | Значение: $value" -ForegroundColor Green
}
}
}
else {
if ("$values" -match '(^|[^\d])10[./-]11([^\d]|$)') {
Write-Host "НАЙДЕНО: $($file.FullName) | Лист: $($sheet.Name) | Значение: $values" -ForegroundColor Green
}
}
}
}
catch {
Write-Host "Не удалось прочитать: $($file.FullName)" -ForegroundColor Yellow
}
finally {
if ($workbook) {
$workbook.Close($false)
[void][Runtime.InteropServices.Marshal]::ReleaseComObject($workbook)
}
}
}
$excel.Quit()
[void][Runtime.InteropServices.Marshal]::ReleaseComObject($excel)
Write-Host "ПОИСК ЗАВЕРШЁН" -ForegroundColor Cyan