使用powershell 1.0将结果添加到新的Excel工作表

时间:2012-04-21 16:03:01

标签: powershell powershell-v1.0

我有两个powershell cmdlet用于生成流程报告服务报告

例如:Get-process和Get-services

我知道 export-csv c:\ test.csv 会将结果导出到Excel工作表。

但是我需要将第一个cmdlet的结果导出到第一个工作表,将第二个cmdlet导出到同一个csv文件的第二个工作表。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

IMO这里最好的选择就是使用excel自动化。例如。的ConvertTo-Excel.ps1:

param (
    [ValidatePattern('\.csv$')]
    [ValidateScript({
        Test-Path $_
    })]
    [string[]]$Path
)

$FullPath = $Path | ForEach-Object {
    (Resolve-Path $_).ProviderPath
}

$First, $Rest = $FullPath

$Excel = New-Object -ComObject Excel.Application

$Book = $Excel.Workbooks.Open($First)

foreach ($Item in $Rest) {
    $Next = $Excel.Workbooks.Open($Item)
    $Next.ActiveSheet.Move($Book.ActiveSheet)
}

$Excel.Visible = $true

您可以使用。\ ConvertTo-Excel.ps1 -Path。\ services.csv,。\ process.csv,.... csv运行以上脚本。 并且所有csv都以相反的顺序组合在一起。

HTH 鲍尔泰克