Powershell найти и заменить в Excel - PullRequest
0 голосов
/ 11 марта 2019

У меня около 20 отчетов Excel. Все заголовки одинаковы, а форматы ячеек одинаковы. В столбце H на вкладке с именем Response заголовок «Sensor Version» содержит ячейки с номерами, такими как 006.002.001454. Я пытаюсь заставить powershell найти и заменить 00, чтобы в числах не было предшествующих 0. Есть ли способ сделать это, и что более важно, есть ли способ применить это только к столбцу H, поскольку в другой области рабочей книги потенциально может быть 00 в ячейке.

1 Ответ

0 голосов
/ 12 марта 2019

Этот код должен работать:

$excelFile = "excel File.xlsx"
$objExcel = New-Object -ComObject Excel.Application
$WorkBook = $objExcel.Workbooks.Open($excelFile)
$worksheet = $WorkBook.sheets.item("Response")
$rowCount = $worksheet.usedrange.rows.count
$ColumnNumber = $worksheet.cells.find("Sensor Version").column

$newValues = $worksheet.usedrange.columns.item($ColumnNumber).value2 |% { $_ -split "00(.)" -join ""}

for ($i = 2; $i -le $rowCount; $i++) {
    $workSheet.cells($i,$ColumnNumber).value = $worksheet.cells($i,$ColumnNumber).text -split "00(.)" -join ""
}

$workBook.close()

Это откроет каждый файл в режиме только для чтения, поэтому у вас будет приглашение для каждой попытки сохранения.Вы можете перебрать каждый файл Excel, включив весь блок кода в цикл ForEach и установив для каждого пути к файлу значение $excelFile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...