Что я делаю здесь, так это для поиска в Excel-листе значения, если значение совпадает, оно будет заменено первым значением в данном текстовом файле:
пример:
поиск по значению текста найти первый экземпляр заменить на первое значение в данном текстовом файле, который "читается", поиск снова для текста найти снова заменить на "чтение", пока не может найти "текст", теперь искать второе значение в массиве "text1", поиск в листе Excel, найти его заменить второй строкой в данном текстовом значении, которое является "read1" и так далее.
У меня есть сценарий, который работает несколько, проблема в том, что он заменит все значения массива только первой строкой текстового файла, который "читается", он не перебирает вторую строку текстового файла.
Может кто-нибудь, пожалуйста, помогите.
код:
Файл test.txt читается как:
читать
READ1
read2
$text = "text","text1","text2","text3"
$replace=get-content C:\script\test.txt
$File = "C:\script\test.xlsx"
# Setup Excel, open $File and set the the first worksheet
$i=0
$Excel = New-Object -ComObject Excel.Application
$Excel.visible = $true
$Workbook = $Excel.workbooks.open($file)
$Worksheets = $Workbooks.worksheets
$Worksheet = $Workbook.Worksheets.Item(1)
$Range = $Worksheet.Range("A1","Z10").EntireColumn
Foreach($SearchString in $text){
$Search = $Range.find($SearchString)
if ($search -ne $null){
$SearchString
$replace[$i]
$FirstAddress = $search.Address
do {
$Search.value() = $replace[$i]
$search = $Range.FindNext($search)
} while ( $search -ne $null -and $search.Address -ne $FirstAddress )
$i++
}
}
$WorkBook.Save()
$WorkBook.Close()
[void]$excel.quit()