Powershell的.csv文件输出显示在Excel的一栏中

时间:2018-07-12 07:30:29

标签: excel powershell csv

最近在某些Windows 10计算机上,我注意到 Get-Service | Export-Csv "C:\users\[xxx]"创建一个.csv文件,如果在Excel中打开该文件,则该文件会在A列中显示所有属性。我习惯于将每个属性输出到单独的列中。

两台计算机上的Windows和Office版本相同。 Windows:1709(内部版本16299.431) 办公室:1802(内部9029.2253 CTR)

Excel-Online还在一行中显示输出。

在每台计算机上右键单击.csv文件,将显示不同的文件类型: 显示多列的“ CSV文件(.csv)”与在一列中打开的“ Microsoft Excel-CSV-文件(.csv)”。

此外,文件图标不同。

enter image description here(用于显示多列的计算机,enter image description here)用于显示在一列的计算机。

有人经历过这种情况,并且知道为什么会这样吗?

我对哪种是正确的行为感到困惑。

感谢您的输入。

2 个答案:

答案 0 :(得分:3)

Export-CSV使用,分隔列,而excel希望;作为分隔符。

处理这种情况的最简单方法是改用以下方法:

Export-Csv "C:\users\[xxx]" -Delimiter ';'

这将使用.csv而非;创建,文件。

您可能在两台计算机上都有不同的默认定界符,这里的答案很好地说明了这一点:How to get Excel to interpret the comma as a default delimiter in CSV files?

答案 1 :(得分:1)

对我来说,问题出在写csv文件的编码中。 当我在PowerShell中使用Out-File时,它以UCS-2 Little Endian编码,并且所有内容最终都集中在一栏中。

我为您提供的解决方案是:

Get-Service | Export-Csv -Path "C:\users\[xxx]" -NoTypeInformation -Encoding UTF8 -Force