Как испечь вкусный торт в Excel с помощью PowerShell

Случайно наткнулся вот на эту страничку. Там собрано много разных интересных вещей и записей, а самое любопытное из них — это стыренный с Мягкософтовского Технета аж в конце 2008 года скриптик на PowerShell, который создает графическую диаграмму процессов операционной системы в виде вкусного многоцветного торта, и обновляет её в режиме реального времени («тортик» поворачивается).

Приведу здесь этот код, благо он не очень большой, и один скриншотик.

$processes = Get-WmiObject -class Win32_Process
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$workbook = $excel.Workbooks.add()
$sheet = $workbook.worksheets.Item(1)
$workbook.workSheets.item(3).delete()
$workbook.WorkSheets.item(2).delete()
$workbook.WorkSheets.item(1).Name = "Processes"
$sheet = $workbook.WorkSheets.Item("Processes")
$x = 2
$lineStyle = "microsoft.office.interop.excel.xlLineStyle" -as [type]
$colorIndex = "microsoft.office.interop.excel.xlColorIndex" -as [type]
$borderWeight = "microsoft.office.interop.excel.xlBorderWeight" -as [type]
$chartType = "microsoft.office.interop.excel.xlChartType" -as [type]
For($b = 1 ; $b -le 2 ; $b++)
{
$sheet.cells.item(1,$b).font.bold = $true
$sheet.cells.item(1,$b).borders.LineStyle = $lineStyle::xlDashDot
$sheet.cells.item(1,$b).borders.ColorIndex = $colorIndex::xlColorIndexAutomatic
$sheet.cells.item(1,$b).borders.weight = $borderWeight::xlMedium
}
$sheet.cells.item(1,1) = "Name of Process"
$sheet.cells.item(1,2) = "Working Set Size"
Foreach($process in $processes)
{
$sheet.cells.item($x, 1) = $process.name
$sheet.cells.item($x,2) = $process.workingSetSize
$x++
} #end foreach
$range = $sheet.usedRange
$range.EntireColumn.AutoFit() | out-null
$workbook.charts.add() | out-null
$workbook.ActiveChart.chartType = $chartType::xl3DPieExploded
$workbook.ActiveChart.SetSourceData($range)
For($i = 1 ; $i -le 360 ; $i +=5)
{
$workbook.ActiveChart.rotation = $i
}
$i=1
IF(Test-Path $strPath)
{
Remove-Item $strPath
$Excel.ActiveWorkbook.SaveAs($strPath)
}
ELSE
{
$Excel.ActiveWorkbook.SaveAs($strPath)
} 

А вот что мне довелось увидеть, когда я запустил этот скрипт и подивился на то, что сами собой начали заполняться ячейки открывшегося Microsoft Excel 2010, словно невидимая рука завелась на моей клавиатуре:

Вкусный тортик, не правда ли?

Изменил вид в Excel:

Подробнее, кто сколько кушает ресурсов

Вот такие пироги!

Автор: admin

Кандидат химических наук, работающий системным администратором :)

Как испечь вкусный торт в Excel с помощью PowerShell: 1 комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*