使用PowerShell导入csv excel

我试图导入一个逗号分隔的.txt文件。 它被导入。 但是,excel似乎并不了解它是逗号分隔的。 它显示在同一列中的所有。

[threading.thread]::CurrentThread.CurrentCulture = 'en-US' $wbpath=Join-Path "$psscriptroot" 'file.xlsx' $importcsv=Join-Path "$psscriptroot" 'file.txt' $xl = New-Object -ComObject Excel.Application $xl.Visible = $false $xl.Workbooks.OpenText($importcsv) $xl.DisplayAlerts = $false [threading.thread]::CurrentThread.CurrentCulture = 'en-US' $xl.ActiveWorkbook.SaveAs($wbpath,51) $xl.Quit() 

有什么build议么? 谢谢。

你有两个select。 其一,如果你的文件扩展名是.csv而不是.txt ,那么它可以正常工作。 第二个选项,请确保您传递$True作为逗号分隔符参数,如下所示:

 $xl.Workbooks.OpenText($importcsv, 2, 1, 1, 1, $False, $False, $False, $True) 

您需要向OpenText方法提供更多参数以使其能够看到分隔符。

 $wbpath=Join-Path "$psscriptroot" 'file.xlsx' $importcsv=Join-Path "$psscriptroot" 'file.txt' $xl = New-Object -ComObject Excel.Application $xl.Visible = $true $xlWindows=2 $xlDelimited=1 $xlTextQualifierDoubleQuote=1 $StartRow=1 $xl.workbooks.OpenText($importcsv,$xlWindows,$StartRow,$xlDelimited,$xlTextQualifierDoubleQuote,$false,$false,$false,$true) $xl.ActiveWorkbook.SaveAs($wbpath,51) $xl.Quit() 

有关完整的详细信息,请参阅MSDN参考:
https://msdn.microsoft.com/en-us/library/office/ff837097.aspx
第一个$ false告诉它不要把连续的分隔符当作一个,下一个告诉它不要把Tab作为分隔符,下一个$ false对于分号是一样的,而$ true则告诉它使用逗号作为分隔符。 还有额外的分隔符选项,我没有包括在分隔符中,都是可选的,你只需要将参数包括到最后一个相关的参数中(设置逗号为$ true)。