Come esportare un CSV in Excel utilizzando PowerShell
- Esporta file CSV in file Excel utilizzando l’oggetto COM di Excel PowerShell
- Esporta file CSV in file Excel utilizzando l’oggetto COM di Excel PowerShell
-
Esporta file CSV in file Excel utilizzando
PSExcel
PowerShell - Conclusione

Un CSV (Comma Separated Values) è un file di testo semplice che memorizza dati in un formato tabellare. Contiene un elenco di dati separati da virgole o altri delimitatori, come i punti e virgola.
Un file CSV ha un’estensione .csv
e può essere visualizzato con un programma di fogli di calcolo, come Microsoft Excel. Un file con estensione .xlsx
è un file di Worksheet di Microsoft Excel.
Questo articolo approfondisce le specifiche dell’esportazione di file CSV in Excel utilizzando PowerShell, coprendo tre metodi distinti: l’oggetto COM di Excel, il modulo ImportExcel
e il modulo PSExcel
. Ogni metodo si adatta a diversi scenari e requisiti, offrendo vantaggi unici.
Esporta file CSV in file Excel utilizzando l’oggetto COM di Excel PowerShell
Il metodo dell’oggetto COM di Excel è particolarmente utile quando si tratta di trasformazioni di dati e reporting in ambienti Windows. Questo approccio è ideale per coloro che devono automatizzare il processo di conversione dei dati CSV in un formato Excel più user-friendly, ampiamente utilizzato nel business e nell’analisi dei dati.
Script:
# Define the CSV file path and the Excel file path
$csvPath = "C:\path\file.csv"
$excelPath = "C:\path\file.xlsx"
# Start Excel application
$excel = New-Object -ComObject excel.application
$workbook = $excel.Workbooks.Add()
$worksheet = $workbook.worksheets.Item(1)
# Import CSV data into the worksheet
$row = 1
Import-Csv $csvPath | ForEach-Object {
$col = 1
foreach ($value in $_.PSObject.Properties.Value) {
$worksheet.Cells.Item($row, $col) = $value
$col++
}
$row++
}
# Save and close Excel workbook
$workbook.SaveAs($excelPath)
$excel.Quit()
In questo script, iniziamo definendo i percorsi per il nostro file CSV sorgente e il file Excel di destinazione. Poi avviamo un’istanza dell’applicazione Excel e aggiungiamo un nuovo workbook con un singolo foglio di lavoro.
Il cmdlet Import-Csv
legge il file CSV, e iteriamo attraverso ciascun record usando ForEach-Object
. All’interno del ciclo, assegniamo ciascun valore alla cella corrispondente nel foglio di lavoro di Excel.
Dopo aver popolato il foglio di lavoro con tutti i dati del file CSV, salviamo il workbook nel percorso specificato e chiudiamo l’applicazione Excel.
Output:
Esporta file CSV in file Excel utilizzando l’oggetto COM di Excel PowerShell
Il metodo dell’oggetto COM di Excel è particolarmente utile quando si tratta di trasformazioni di dati e reporting in ambienti Windows. Questo approccio è ideale per coloro che devono automatizzare il processo di conversione dei dati CSV in un formato Excel più user-friendly, ampiamente utilizzato nel business e nell’analisi dei dati.
Innanzitutto, è necessario installare il modulo ImportExcel
se non lo hai già fatto.
Install-Module -Name ImportExcel -Force -Scope CurrentUser
Script:
# Install the ImportExcel module if not already installed
# Install-Module -Name ImportExcel -Scope CurrentUser
# Define the CSV and Excel file paths
$csvPath = "C:\path\file.csv"
$excelPath = "C:\path\file.xlsx"
# Import data from CSV and export to Excel
Import-Csv -Path $csvPath | Export-Excel -Path $excelPath
# Print completion message
Write-Host "CSV data has been exported to Excel at: $excelPath"
In questo script, controlliamo prima se il modulo ImportExcel
è installato. Questo modulo non è incluso in PowerShell di default e potrebbe dover essere installato dalla PowerShell Gallery utilizzando Install-Module
.
Successivamente, definiamo i percorsi dei file per il nostro CSV sorgente e il file Excel di destinazione. Il cmdlet Import-Csv
legge il file CSV, e la pipeline (|
) passa i dati importati direttamente al cmdlet Export-Excel
, che crea un file Excel nella posizione specificata.
Questo script è progettato per essere semplice ed efficiente, rendendolo accessibile anche a coloro che sono nuovi alla scrittura di script PowerShell. Dimostra efficacemente la facilità di conversione dei dati da CSV a formato Excel utilizzando PowerShell.
Output:
Esporta file CSV in file Excel utilizzando PSExcel
PowerShell
Il modulo PSExcel
sfrutta le capacità di PowerShell per interagire con i file Excel senza necessita di avere Excel installato sul sistema. Questo lo rende particolarmente utile in ambienti dove installare Excel non è fattibile, come nei server o nei sistemi automatizzati.
PSExcel
è ampiamente utilizzato per compiti come la generazione di report, l’analisi dei dati e la conversione dei dati in un formato più presentabile e accessibile come Excel.
Innanzitutto, è necessario installare il modulo PSExcel
se non lo hai già fatto.
Install-Module -Name PSExcel -Force -Scope CurrentUser
Script:
#Define the CSV and Excel file paths
$csvPath = "C:\path\file.csv"
$excelPath = "C:\path\file.xlsx"
# Import data from CSV
$csvData = Import-Csv -Path $csvPath
# Export data to Excel
$csvData | Export-Excel -Path $excelPath
# Print completion message
Write-Host "CSV data has been exported to Excel at: $excelPath"
In questo script, iniziamo assicurandoci che il modulo PSExcel
sia installato. Non è incluso di default in PowerShell e può essere installato dalla PowerShell Gallery.
Definiamo poi i percorsi per il nostro file CSV sorgente e il file Excel di destinazione. Il cmdlet Import-Csv
viene utilizzato per leggere il file CSV in una variabile.
Questi dati importati vengono quindi passati al cmdlet Export-Excel
, che crea un file Excel nella posizione specificata.
Output:
Conclusione
Questa guida completa sull’esportazione di file CSV in Excel utilizzando PowerShell ha dimostrato la flessibilità e la potenza di PowerShell nella gestione dei compiti di conversione dei dati. Ogni metodo esplorato - l’oggetto COM di Excel, il modulo ImportExcel
e il modulo PSExcel
- offre vantaggi unici, adattandosi a diversi ambienti e requisiti.
L’oggetto COM di Excel è una scelta robusta per l’interazione diretta con Excel in ambienti Windows, ideale per compiti complessi di manipolazione dei dati. I moduli ImportExcel
e PSExcel
forniscono un approccio alternativo, estendendo la funzionalità di PowerShell per gestire i file Excel senza sforzo, anche in assenza di software Excel.
Questi metodi non solo sottolineano la versatilità di PowerShell ma offrono anche soluzioni pratiche per automatizzare e semplificare i compiti di trasformazione dei dati. Che tu sia un novizio nella scrittura di script PowerShell o un professionista esperto, questi metodi forniscono strumenti preziosi per migliorare le tue capacità di elaborazione e reporting dei dati in una serie di scenari.