使用PowerShell将csv文件转换为excel

时间:2016-12-20 21:27:38

标签: powershell

我正在尝试使用PowerShell将csv文件转换为excel。我从另一篇文章得到了一些帮助,脚本运行,但输出是一个空白的xlsx文件。

有人可以帮忙吗?

这是powershell脚本

param (
[Parameter(Mandatory=$true)][string]$inputfile,
[Parameter(Mandatory=$true)][string]$outputfile
)

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false

$wb = $excel.Workbooks.Add()
$ws = $wb.Sheets.Item(1)

$ws.Cells.NumberFormat = "@"

write-output "Opening $inputfile"

$i = 1
Import-Csv $inputfile | Foreach-Object { 
$j = 1
foreach ($prop in $_.PSObject.Properties)
{
    if ($i -eq 1) {
        $ws.Cells.Item($i, $j) = $prop.Name
    } else {
        $ws.Cells.Item($i, $j) = $prop.Value
    }
    $j++
}
$i++
}

$wb.SaveAs($outputfile,51)
$wb.Close()
$excel.Quit()
write-output "Success"

然后我正在运行以下命令

。\ csv_to_excel.ps1 -inputfile“C:\ Scripts \ testcsv.csv”-outputfile“C:\ Scripts \ data.xlsx”

此外,如果有人有使用Import Excel powershell模块的经验并且有某种指导,我也会很感激。

由于

2 个答案:

答案 0 :(得分:4)

要使用PowerShell 5或安装了PSGet的较低版本的计算机上的Doug Finke使用Excel模块:

Install-Module importexcel
Import-CSV $inputfile | Export-Excel $outputfile

$inputfile$outputfile是脚本

之类的文件位置

答案 1 :(得分:0)

#作为一个简单的方法来格式化为 excel 的例子,只需使用“Export-Excel”

'Get-Service -ComputerName localhost |Select-Object -Property Status,Name,DisplayName|Export-Excel -Path '.\output.xlsx'

#瞧!