私はこのようなコンポーネント名とCodecountで構成されてハッシュテーブルを持っている:ハッシュテーブルの名前と値をExcel列にエクスポートする方法は?
Name Value
----- ------
Comp1 2000
Comp2 3000
それがExcelにエクスポートされている場合は、存在するのは簡単だろう。
このハッシュテーブルをPowerShellからExcelにエクスポートするにはどうすればよいですか?
私はこのようなコンポーネント名とCodecountで構成されてハッシュテーブルを持っている:ハッシュテーブルの名前と値をExcel列にエクスポートする方法は?
Name Value
----- ------
Comp1 2000
Comp2 3000
それがExcelにエクスポートされている場合は、存在するのは簡単だろう。
このハッシュテーブルをPowerShellからExcelにエクスポートするにはどうすればよいですか?
輸出-CSV
ためのもう一つの投票&{$hash.getenumerator() |
foreach {new-object psobject -Property @{Component = $_.name;Codecount=$_.value}}
} | export-csv codecounts.csv -notype
使用Export-CSVおよびCSVはハッシュテーブルを検討エクセル
でファイルというオープン:
$ht = @{"c1" = 100; "c2" = 200}
反復すべてのキーを、ファイルにハッシュテーブルのキーと値を追加します。
$ht.keys | % { add-content -path myFile.csv -value $("{0},{1}" -f $_, $ht.Item($_)) }
へExcelファイルを作成するには、次のようなものを使用します。
$ht = @{"comp1"="2000";"comp2"="3000"}
$excel = new-Object -comobject Excel.Application
$excel.visible = $true # set it to $false if you don't need monitoring the actions...
$workBook = $excel.Workbooks.Add()
$sheet = $workBook.Sheets.Item(1)
$sheet.Name = "Computers List"
$sheet.Range("A1","A2").ColumnWidth = 40
$sheet.range('A:A').VerticalAlignment = -4160 #align is center (TOP -4108 Bottom -4107 Normal)
$sheet.Cells.Item(1,1) = "Name"
$sheet.cells.Item(1,2) = "Value"
$index = 2
$ht.keys | % {
$sheet.Cells.Item($index,1) = $_
$sheet.Cells.Item($index,2) = $ht.item($_)
$index++
}
$workBook.SaveAs("C:\mylist.xls")
$excel.Quit()
このように、最後のスクリプトの行を
function Release-Ref ($ref) {
[System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$ref) | out-null
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
}
および変更:
は、Excelのプロセスがタスクマネージャで殺されたか、この機能を使用する必要があることを忘れないでください
Release-Ref $workbook
Release-Ref $sheet
$excel.Quit()
release-Ref $excel
ハッシュテーブルのキーに「、」が含まれていると、このソリューションに問題が発生します。 –