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.

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()
oppure è possibile salvare l'elenco dei file contenuti in una cartella in un foglio Excel

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.
Tags:
Excel11 PowerShell200 Script85
Potrebbe interessarti anche: