PowerShell: Creare un file Excel
Il seguente codice in PowerShell è un esempio di come è possibile creare dinamicamente un file Excel popolato con dei dati. In questo caso i dati sono i processi in esecuzione sulla macchina.
oppure è possibile salvare l'elenco dei file contenuti in una cartella in un foglio Excel
PowerShell
# se non funge lanciare prima da linea di comando
# Set-ExecutionPolicy RemoteSigned
# eseguire con: powershell .\CreaExcel.ps1
# crea un file excel con l'elenco dei processi in esecuzione
$excel = new-object -comobject excel.application
$excel.Visible = $False
$wb = $excel.Workbooks.Add()
$s = $wb.Worksheets.Item(1)
$s.Cells.Item(1,1) = "ID"
$s.Cells.Item(1,2) = "Process"
$s.Cells.Item(1,3) = "CPU"
$r = 2
Get-Process | Sort-Object ProcessName | Select ID, ProcessName,CPU | foreach-object{
$s.cells.item($r,1) = $_.id;
$s.cells.item($r,2) = $_.processname;
$s.cells.item($r,3) = $_.cpu;
$r=$r+1
}
$wb.SaveAs(".\CreaExcel.xls")
"Salvato in: " + $wb.FullName
$excel.Quit()
PowerShell
Set-ExecutionPolicy RemoteSigned
# eseguire con: powershell .\DirToExcel.ps1
# crea un file excel con l'elenco dei file contenuti nella directory corrente
$excel = new-object -comobject excel.application
$excel.Visible = $True
$wb = $excel.Workbooks.Add()
$s = $wb.Worksheets.Item(1)
$r = 1
$s.Cells.Item(1,1) = "Name"
$s.Cells.Item(1,2) = "Size"
$s.Cells.Item(1,3) = "Midified"
$s.Cells.Item(1,4) = "Mode"
$r = $r + 1
dir * | Sort-Object Length -Descending | foreach-object{
$s.cells.item($r,1) = $_.name;
$s.cells.item($r,2) = $_.length;
$s.cells.item($r,3) = $_.lastwritetime;
$s.cells.item($r,4) = $_.mode;
$r=$r+1
}
$wb.SaveAs(".\DirToExcel.xls")
"Salvato in: " + $wb.FullName
$excel.Quit()
Sulla macchina deve essere installato Excel.