Excel 通过 powershell 的 com 对象
Excel com-object via powershell
我正在通过 powershell 将数据输出到 csv 文件。总体来说一切顺利。
我已将数据导出到 csv 文件。它包含大约 10 列。当我用 MS Excel 打开它时,它都包含在第一列中。我想通过 powershell(提供相同的 GUI 版本)以编程方式将它分成几列。我可以进行循环和填充以拆分每一行,然后将值放入适当的单元格,但这会花费太多时间。
我相信应该有一个优雅的解决方案来将一列拆分为多列。有没有办法一步到位,不用循环?
这是我到目前为止想出的:
PS,CSV 文件 100% 完美。分隔符是','
Get-Service | Export-Csv -NoTypeInformation c:.csv -Encoding UTF8
$xl = New-Object -comobject Excel.Application
$xl.Visible = $true
$xl.DisplayAlerts = $False
$wb = $xl.Workbooks.Open('c:.csv')
$ws = $wb.Sheets|?{$_.name -eq '1'}
$ws.Activate()
$col = $ws.Cells.Item(1,1).EntireColumn
这将为您提供所需的功能;添加到您的代码。查看 the MSDN page 了解有关 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)
我正在通过 powershell 将数据输出到 csv 文件。总体来说一切顺利。
我已将数据导出到 csv 文件。它包含大约 10 列。当我用 MS Excel 打开它时,它都包含在第一列中。我想通过 powershell(提供相同的 GUI 版本)以编程方式将它分成几列。我可以进行循环和填充以拆分每一行,然后将值放入适当的单元格,但这会花费太多时间。
我相信应该有一个优雅的解决方案来将一列拆分为多列。有没有办法一步到位,不用循环?
这是我到目前为止想出的:
PS,CSV 文件 100% 完美。分隔符是','
Get-Service | Export-Csv -NoTypeInformation c:.csv -Encoding UTF8
$xl = New-Object -comobject Excel.Application
$xl.Visible = $true
$xl.DisplayAlerts = $False
$wb = $xl.Workbooks.Open('c:.csv')
$ws = $wb.Sheets|?{$_.name -eq '1'}
$ws.Activate()
$col = $ws.Cells.Item(1,1).EntireColumn
这将为您提供所需的功能;添加到您的代码。查看 the MSDN page 了解有关 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)