HOWTO · PowerShell

Come esportare un CSV in Excel utilizzando PowerShell

Questo tutorial ti insegnerà a esportare un file CSV in un file Excel utilizzando PowerShell.

In questa pagina

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:

esportare un csv in excel utilizzando powershell - output 1

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 un csv in excel usando powershell - output 2

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:

esportare un csv in excel utilizzando powershell - output 3

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.