Come esportare un CSV in Excel utilizzando PowerShell

  1. Esporta file CSV in file Excel utilizzando l’oggetto COM di Excel PowerShell
  2. Esporta file CSV in file Excel utilizzando l’oggetto COM di Excel PowerShell
  3. Esporta file CSV in file Excel utilizzando PSExcel PowerShell
  4. Conclusione
Come esportare un CSV in Excel utilizzando PowerShell

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.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Articolo correlato - PowerShell Export