Запись из Powershell в Excel: как установить формат ячейки для значения? - PullRequest
1 голос
/ 29 марта 2019

Я читаю значения из разных файлов Excel и составляю новый, содержащий информацию из всех остальных.При этом Excel, кажется, автоматически меняет «.»до запятой ','.Как мне это предотвратить?

Я использую Powershell ISE на Win10 и Office365.Я пытался читать и писать «value2» и «текст» и писать их.Я пытался привести значение2 к строке, когда я пишу это.Не работал.Переменные в Powershell содержат правильные значения в виде строк.В тот момент, когда я сохраняю новый файл Excel, правильный формат исчезает.

Пример: значение равно «123.456».Я могу прочитать это, переменная Powershell показывает «123.456».Я записываю его в Excel и затем открываю Excel, он читает: 123 456 и интерпретирует его как число вместо текста.

Как я читаю значение

[...]
$tmp += ($worksheet.cells.item($intRow,$col).value2)

Как я пишу значение(я пробовал «value» и «text» для обоих)

[...]
elseif($value -eq 6){
 $sheet.Cells.item($intRow,$columncounter).value2 = ($tmp[$value]).ToString()
}
[...]

Вот как я открываю файл excel для записи:

$objExcel=New-Object -ComObject Excel.Application
$objExcel.Visible=$false
$resultbook = $objExcel.Workbooks.Add()
$sheet = $resultbook.ActiveSheet
$sheet.Name = "Data"

Так я сохраняю excelfile

$resultbook.SaveAs($name)
$resultbook.close()

Ожидается: Input == Output, пример: 1234.5678 -> 1234.5678

Фактический результат: Input! = Output, пример 1234.5678 -> 1234,5678

Он отлично работает для всех других строк, текстов, чисел, кроме тех, которые содержат точки.

Я предполагаю, что должен быть способ указать формат ячейки в целевом файле, однако я не нашел никакой документации по этому вопросу.,Любая помощь с благодарностью.

1 Ответ

1 голос
/ 29 марта 2019

Если вы собираетесь работать с Excel и PowerShell, я настоятельно рекомендую использовать один из двух перечисленных ниже модулей, они добавляют много полезных функций:

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