Как экспортировать имя и значение хеш-таблицы в столбцы Excel? - PullRequest
2 голосов
/ 22 февраля 2012

У меня есть хеш-таблица, состоящая из Имя компонента и Кодовый счет , например:

Name            Value
-----           ------
Comp1           2000
Comp2           3000

Если это будет экспортировано в Excel, это будет легкопредставлять.

Как экспортировать эту хеш-таблицу из PowerShell в Excel?

Ответы [ 4 ]

10 голосов
/ 22 февраля 2012

Еще один голос за экспорт-CSV

&{$hash.getenumerator() |
  foreach {new-object psobject -Property @{Component = $_.name;Codecount=$_.value}}
 } | export-csv codecounts.csv -notype
5 голосов
/ 22 февраля 2012

Для создания файла 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()

Помните, что процесс Excel нужно убить в диспетчере задач или использовать эту функцию:

function Release-Ref ($ref) {

    [System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$ref) | out-null
    [System.GC]::Collect()
    [System.GC]::WaitForPendingFinalizers()
}

И измените строки последнего скрипта следующим образом:

Release-Ref $workbook
Release-Ref $sheet

$excel.Quit()

release-Ref $excel
1 голос
/ 22 февраля 2012

Рассмотрим хеш-таблицу:

$ht = @{"c1" = 100; "c2" = 200}

Переберите все ключи и добавьте ключ и значение хеш-таблицы в файл:

$ht.keys | % { add-content -path myFile.csv -value $("{0},{1}" -f $_, $ht.Item($_)) }
1 голос
/ 22 февраля 2012

Используйте Export-CSV и откройте этот файл CSV в Excel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...