2012-04-21 2 views
1

두 개의 powershell cmdlet으로 프로세스 보고서서비스 보고서을 생성했습니다.poweshell 1.0을 사용하여 새 Excel 시트에 결과 추가

예 : 프로세스를 가져 오기 및 Get-서비스

내가 아는 수출 CSV C : \ test.csv이 시트를 Excel로 결과를 내 보냅니다.

그러나 첫 번째 시트로 내보내려면 두 번째 cmdlet을 동일한 csv 파일의 두 번째 시트로 내 보내야합니다.

어떻게해야합니까?

+2

짧은 답변 :를 .csv 실제 Excel 통합 문서와 같은 여러 시트를 지원하지 않는 일반 텍스트 파일이기 때문에 당신이 사용하는'수출 Csv' 할 수 없습니다. – Filburt

+0

@ Filburt Excel로 내보낼 수 있습니까? 또는 기존 결과 집합을 추가하고 csv의 같은 시트에 넣을 수 있습니까? – Rockstart

+0

두 번째 결과 집합을 동일한 csv에 추가 할 수 있어야합니다. Excel에서 멋지게 보이기 위해 약간의 빈 줄을 추가해야 할 수도 있습니다. 그렇지 않으면 실제 .xslx 통합 문서를 만들고 Office 자동화를 사용하여 결과 집합을 채워야합니다. – Filburt

답변

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 Bartek

관련 문제