Cómo exportar un CSV a Excel usando PowerShell

  1. Exportar archivo CSV a archivo Excel utilizando el objeto COM de Excel PowerShell
  2. Exportar archivo CSV a archivo Excel utilizando el objeto COM de Excel PowerShell
  3. Exportar archivo CSV a archivo Excel utilizando PSExcel PowerShell
  4. Conclusión
Cómo exportar un CSV a Excel usando PowerShell

Un CSV (Valores Separados por Comas) es un archivo de texto plano que almacena datos en un formato tabular. Contiene una lista de datos separados por comas u otros delimitadores, como punto y coma.

Un archivo CSV tiene una extensión .csv y se puede ver con un programa de hojas de cálculo, como Microsoft Excel. Un archivo con la extensión .xlsx es un archivo de hoja de trabajo de Microsoft Excel.

Este artículo profundiza en los detalles de la exportación de archivos CSV a Excel usando PowerShell, cubriendo tres métodos distintos: el objeto COM de Excel, el módulo ImportExcel y el módulo PSExcel. Cada método se adapta a diferentes escenarios y requisitos, ofreciendo ventajas únicas.

Exportar archivo CSV a archivo Excel utilizando el objeto COM de Excel PowerShell

El método del objeto COM de Excel es particularmente útil cuando se trata de transformaciones de datos e informes en entornos de Windows. Este enfoque es ideal para aquellos que necesitan automatizar el proceso de convertir datos CSV a un formato de Excel más amigable, que es ampliamente utilizado en negocios y análisis de datos.

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()

En este script, comenzamos definiendo las rutas para nuestro archivo CSV de origen y el archivo Excel de destino. Luego, iniciamos una instancia de la aplicación de Excel y añadimos un nuevo libro de trabajo con una sola hoja de cálculo.

El cmdlet Import-Csv lee el archivo CSV y recorremos cada registro usando ForEach-Object. Dentro del bucle, asignamos cada valor a la celda correspondiente en la hoja de cálculo de Excel.

Después de llenar la hoja de cálculo con todos los datos del archivo CSV, guardamos el libro de trabajo en la ruta especificada y cerramos la aplicación de Excel.

Salida:

exportar un csv a excel usando powershell - salida 1

Exportar archivo CSV a archivo Excel utilizando el objeto COM de Excel PowerShell

El método del objeto COM de Excel es particularmente útil cuando se trata de transformaciones de datos e informes en entornos de Windows. Este enfoque es ideal para aquellos que necesitan automatizar el proceso de convertir datos CSV a un formato de Excel más amigable, que es ampliamente utilizado en negocios y análisis de datos.

Primero, necesitas instalar el módulo ImportExcel si aún no lo has hecho.

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"

En este script, primero verificamos si el módulo ImportExcel está instalado. Este módulo no está incluido en PowerShell por defecto y puede que necesites instalarlo desde la PowerShell Gallery usando Install-Module.

A continuación, definimos las rutas de archivo para nuestro CSV de origen y el archivo Excel de destino. El cmdlet Import-Csv lee el archivo CSV, y la canalización (|) pasa los datos importados directamente al cmdlet Export-Excel, que crea un archivo Excel en la ubicación especificada.

Este script está diseñado para ser simple y eficiente, haciéndolo accesible incluso para aquellos nuevos en la escritura de scripts de PowerShell. Demuestra efectivamente la facilidad de convertir datos de CSV a formato Excel utilizando PowerShell.

Salida:

exportar un csv a excel usando powershell - salida 2

Exportar archivo CSV a archivo Excel utilizando PSExcel PowerShell

El módulo PSExcel aprovecha las capacidades de PowerShell para interactuar con archivos de Excel sin necesitar que Excel esté instalado en el sistema. Esto lo hace particularmente útil en entornos donde no es factible instalar Excel, como en servidores o sistemas automatizados.

PSExcel se utiliza ampliamente para tareas como generación de informes, análisis de datos y conversión de datos a un formato más presentable y accesible como Excel.

Primero, necesitas instalar el módulo PSExcel si aún no lo has hecho.

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"

En este script, comenzamos asegurándonos de que el módulo PSExcel está instalado. No está incluido por defecto en PowerShell y se puede instalar desde la PowerShell Gallery.

Luego definimos las rutas para nuestro archivo CSV de origen y el archivo Excel de destino. El cmdlet Import-Csv se utiliza para leer el archivo CSV en una variable.

Estos datos importados se canalizan luego al cmdlet Export-Excel, que crea un archivo Excel en la ubicación especificada.

Salida:

exportar un csv a excel usando powershell - salida 3

Conclusión

Esta guía completa sobre la exportación de archivos CSV a Excel usando PowerShell ha demostrado la flexibilidad y el poder de PowerShell en el manejo de tareas de conversión de datos. Cada método explorado - el objeto COM de Excel, el módulo ImportExcel y el módulo PSExcel - ofrece beneficios únicos, adaptándose a diferentes entornos y requisitos.

El objeto COM de Excel es una opción robusta para la interacción directa con Excel en entornos de Windows, ideal para tareas de manipulación de datos complejas. Los módulos ImportExcel y PSExcel proporcionan un enfoque alternativo, extendiendo la funcionalidad de PowerShell para manejar archivos de Excel sin esfuerzo, incluso en ausencia del software de Excel.

Estos métodos no solo subrayan la versatilidad de PowerShell, sino que también ofrecen soluciones prácticas para automatizar y simplificar tareas de transformación de datos. Ya sea que seas un novato en la escritura de scripts de PowerShell o un profesional experimentado, estos métodos proporcionan herramientas valiosas para mejorar tus capacidades de procesamiento y generación de informes de datos en una variedad de escenarios.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
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

Artículo relacionado - PowerShell Export