我正在通过powershell将数据输出到csv文件。一般来说,事情进展顺利。
我已经将数据导出到csv文件中。它包含大约10列。当我用MS打开它时,它都包含在第一列中。我希望通过powershell(相同的GUI版本)以编程方式将其拆分为几个列。我可以做循环和东西来分割每一行,然后把值放到适当的单元格中,但是这样做会花费太多的时间。
我认为应该有一个优雅的解决方案,将一列拆分为多列。有没有办法使它在一个简单的步骤,而不循环?
到目前为止,这就是我想出来的:
PS,CSV文件是100%的罚款。分隔符是',‘
Get-Service | Export-Csv -NoTypeInformation c:\1.csv -Encoding UTF8
$xl = New-Object -comobject Excel.Application
$xl.Visible = $true
$xl.DisplayAlerts = $False
$wb = $xl.Workbooks.Open('c:\1.csv')
$ws = $wb.Sheets|?{$_.name -eq '1'}
$ws.Activate()
$col = $ws.Cells.Item(1,1).EntireColumn

发布于 2016-04-07 14:20:28
这将为您提供所需的功能;添加到您的代码中。有关MSDN页面的更多信息,请访问TextToColumns。
# Select column
$columnA = $ws.Range("A1").EntireColumn
# Enumerations
$xlDelimited = 1
$xlTextQualifier = 1
# Convert Text To Columns
$columnA.texttocolumns($ws.Range("A1"),$xlDelimited,$xlTextQualifier,$true,$false,$false,$true,$false)
$ws.columns.autofit()我必须创建一个用"",""作为分隔符来测试这个值的CSV。使用","的文件在excel中很好。
# Opens with all fields in column A, used to test TextToColumns works
"Name,""field1"",""field2"",""field3"""
"Test,""field1"",""field.2[]"",""field3"""
# Opens fine in Excel
Name,"field1","field2","field3"
Test,"field1","field.2[]","field3"免责声明:用$ws = $wb.Worksheets.item(1)测试的
https://stackoverflow.com/questions/36471135
复制相似问题