none
Найти строки в Excel и вывести их на экран. Powershell RRS feed

  • Вопрос

  • Привет всем! Может у кого завалялся скрипт. Необходимо найти строки с определенным значением в файле Excel и вывести их на экран. преобразовать в csv нельзя. Реализация интересует только на PS. Заранее спасибо.

Ответы

  • Вот, дописал с помощью этой темы:

    $SearchText = 'Text'
    $Excel = New-Object -ComObject Excel.Application
    $Files = Get-ChildItem C:\path -Filter "*.xlsx" -Recurse | Select -Expand FullName
    $counter = 1
    ForEach($File in $Files){
        Write-Progress -Activity "Checking: $file" -Status "File $counter of $($files.count)" -PercentComplete ($counter*100/$files.count)
        $Workbook = $Excel.Workbooks.Open($File)
    $e = new-object -com excel.application If($Workbook.Sheets.Item(1).Range("A:Z").Find($SearchText)){ $book = $e.Workbooks.Open($Workbook.FullNameURLEncoded) $sheet = $book.WorkSheets.item(1) $Cell = $sheet.range("A:Z").find("$SearchText") $Workbook.FullNameURLEncoded $SearchText $Cell.address($false,$false) $Workbook.Close($false) } else { $workbook.close($false) } }

    Вывод примерно такой:

    C:\path\test1.xlsx
    Text
    A4
    C:\path\demo1.xlsx
    Text
    B47
    C:\path\proba1.xlsx
    Text
    A18


    7 июля 2017 г. 12:31
    Модератор

Все ответы

  • есть такой скрипт, который ищет и выводит файлы с нужным текстом:

    $SearchText = 'text'
    $Excel = New-Object -ComObject Excel.Application
    
    $Files = Get-ChildItem C:\path -Filter "*.xlsx" -Recurse | Select -Expand FullName
    $counter = 1
    ForEach($File in $Files){
        Write-Progress -Activity "Checking: $file" -Status "File $counter of $($files.count)" -PercentComplete ($counter*100/$files.count)
        $Workbook = $Excel.Workbooks.Open($File)
            If($Workbook.Sheets.Item(1).Range("A:Z").Find($SearchText)){
            $Workbook.FullNameURLEncoded
            $Workbook.Close($false)
        }
    else {
        $workbook.close($false)
    }
    }
    только замените text и path. А вот как вывести строки их Excel.... я не знаю.
    5 июля 2017 г. 10:10
    Модератор
  • есть такой скрипт, который ищет и выводит файлы с нужным текстом:

    $SearchText = 'text'
    $Excel = New-Object -ComObject Excel.Application
    
    $Files = Get-ChildItem C:\path -Filter "*.xlsx" -Recurse | Select -Expand FullName
    $counter = 1
    ForEach($File in $Files){
        Write-Progress -Activity "Checking: $file" -Status "File $counter of $($files.count)" -PercentComplete ($counter*100/$files.count)
        $Workbook = $Excel.Workbooks.Open($File)
            If($Workbook.Sheets.Item(1).Range("A:Z").Find($SearchText)){
            $Workbook.FullNameURLEncoded
            $Workbook.Close($false)
        }
    else {
        $workbook.close($false)
    }
    }
    только замените text и path. А вот как вывести строки их Excel.... я не знаю.
    Спасибо :) Но да, это не то к сожалению! 
  • Посмотрите у меня (писал сто лет назад), может быть почерпнете что-нить полезное: http://shserg.ru/posts/ad-add-telephone-numbers-using-excel-application-as-data-source/

    my blog: http://shserg.ru/

  • Вот, дописал с помощью этой темы:

    $SearchText = 'Text'
    $Excel = New-Object -ComObject Excel.Application
    $Files = Get-ChildItem C:\path -Filter "*.xlsx" -Recurse | Select -Expand FullName
    $counter = 1
    ForEach($File in $Files){
        Write-Progress -Activity "Checking: $file" -Status "File $counter of $($files.count)" -PercentComplete ($counter*100/$files.count)
        $Workbook = $Excel.Workbooks.Open($File)
    $e = new-object -com excel.application If($Workbook.Sheets.Item(1).Range("A:Z").Find($SearchText)){ $book = $e.Workbooks.Open($Workbook.FullNameURLEncoded) $sheet = $book.WorkSheets.item(1) $Cell = $sheet.range("A:Z").find("$SearchText") $Workbook.FullNameURLEncoded $SearchText $Cell.address($false,$false) $Workbook.Close($false) } else { $workbook.close($false) } }

    Вывод примерно такой:

    C:\path\test1.xlsx
    Text
    A4
    C:\path\demo1.xlsx
    Text
    B47
    C:\path\proba1.xlsx
    Text
    A18


    7 июля 2017 г. 12:31
    Модератор