2012-04-21 40 views
1

我有兩個PowerShell cmdlet生成進程報告服務報告使用poweshell 1.0將結果添加到新的Excel工作表中

如:獲取過程和獲取服務

我知道出口CSV C:\ test.csv將導出結果Excel工作表。

但我需要第一個cmdlet導出到第一個工作表和第二個cmdlet到同一csv文件的第二個工作表的結果。

我該怎麼做?

+2

簡短的回答:因爲一個.csv是不支持多表像一個真正的Excel工作簿中的純文本文件你不能做到這一點使用'出口型Csv'。 – Filburt 2012-04-21 16:09:02

+0

@Filburt我可以將它導出爲ex​​cel嗎?或者我可以追加到現有的結果集,並把它放在同一張表中的CSV? – Rockstart 2012-04-21 16:17:00

+0

應該可以將第二個結果集附加到相同的csv - 可能需要調整(添加一些空行)在Excel中看起來不錯。否則,您必須創建一個真正的.xslx工作簿並使用Office自動化填充結果集。 – Filburt 2012-04-21 16:24:09

回答

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 鮑爾泰克

相關問題