从Powershell写入Excel:如何设置值的单元格格式?

时间:2019-03-29 09:15:21

标签: excel powershell

我正在从不同的Excel文件中读取值,然后编写一个包含其他所有信息的新文件。在执行此操作时,Excel似乎会自动更改“。”逗号“,”。我该如何预防?

我在Win10和Office365上使用Powershell ISE。 我尝试读写'value2'和'text'并编写它们。 我在编写value2时尝试将其转换为字符串。不工作。 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"

这是我保存Excel文件的方式

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

预期:输入==输出,例如:1234.5678-> 1234.5678

实际结果:输入!=输出,例如1234.5678-> 1234,5678

对于所有其他字符串,文本,数字(包含点的字符除外)都可以正常工作。

我认为必须有一种方法可以在目标文件中指定单元格格式,但是我没有找到任何有关此文件的文档。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果要使用Excel和PowerShell,我强烈建议使用下面列出的两个模块之一,它们会添加很多有用的功能: