[英]Import csv to excel using powershell
我正在尝试导入以逗号分隔的.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()
有什么建议么? 谢谢。
您有两个选择。 一种,如果您的文件扩展名是.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/zh-CN/library/office/ff837097.aspx
第一个$ false告诉它不要将连续的定界符视为一个,第二个$ false告诉它不要将Tab视为定界符,下一个$ false则对分号表示相同,并且$ true告诉它使用逗号作为定界符。 在此之后,我没有包含其他定界符选项,因为定界符都是可选的,并且您只需要包含直到您需要的最后一个相关参数(将逗号设置为$ true)即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.