¡No hay necesidad de preocuparse! A continuación, te explicamos cómo convertir CSV a XLSX sin abrir Excel, ¡sólo tienes que utilizar CMD!

Introducción al módulo ImportExcel

Antes de que pueda aprovechar el poder de este módulo, primero debe instalarlo. El proceso de instalación es muy sencillo:

Install-Module -Name ImportExcel -Force -Scope CurrentUser

Algunas cosas importantes sobre este proceso de instalación:

  1. Parameter -Force garantiza que la instalación se ejecute sin confirmación adicional
  2. -Scope CurrentUser hace que el módulo se instale solo para su cuenta actual
  3. El proceso requiere una conexión a Internet para descargar el paquete desde la Galería de PowerShell

Si encuentra un error sobre la política de ejecución, ejecútelo primero:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Conversión de CSV a Excel Magic Script

Una vez que el módulo se haya instalado correctamente, puede ejecutar inmediatamente el script de conversión de archivos CSV a Excel con la siguiente sintaxis:

Import-Csv “C:\path\to\data.csv | Export-Excel “C:\output\data.xlsx” -WorksheetName “Sheet1”

Analicemos este guión parte por sección:

  • Import-Csv: Leer un archivo CSV y convertirlo en un objeto de PowerShell
  • | (Pipeline): Envía datos de un comando al siguiente
  • Export-Excel: Recibir datos y escribirlos en un archivo de Excel
  • -WorksheetName: Especifica el nombre de la hoja de cálculo que se va a crear

Variaciones avanzadas para necesidades complejas

La verdadera fortaleza de PowerShell radica en su flexibilidad. Estas son algunas modificaciones avanzadas que puede implementar:

1. Convertir varios CSV a la vez

Get-ChildItem “C:\data\*.csv” | ForEach-Object {
  $excelPath =$_.FullName -replace '\.csv$','.xlsx'
 Import-Csv $_| Export-Excel $excelPath
}

2. Agregue varias hojas de trabajo

$excel = New-Excel
Import-Csv “data1.csv” | Export-Excel -ExcelPackage $excel -WorksheetName “Sales”
Import-Csv “data2.csv” | Export-Excel -ExcelPackage $excel -WorksheetName “Inventory”
Close-ExcelPackage $excel -SaveAs “report.xlsx”

3. Con formateo automático

Import-Csv “data.csv” | Export-Excel “output.xlsx” -AutoSize -BoldTopRow -FreezeTopRow

Solución de problemas

Si bien el proceso de conversión de un archivo CSV a Excel (XLSX) usando PowerShell tiende a ser simple, en la práctica, puede encontrar algunos problemas técnicos, especialmente si está usando la línea de comandos por primera vez o trabaja con archivos grandes. Los siguientes son algunos de los problemas que surgen a menudo y cómo abordarlos de manera efectiva:

Módulos desconocidos

Si recibe un mensaje de error como The term ‘Export-Excel’ is not recognized, significa que PowerShell no reconoce los comandos del módulo ImportExcel. Este problema suele producirse porque el módulo no está instalado correctamente o PowerShell se está ejecutando sin permiso de administrador.

Solución:

  • Asegúrese de que está ejecutando PowerShell como administrador. Haga clic con el botón secundario en el icono de PowerShell y seleccione Ejecutar como administrador antes de ejecutar el comando Install-Module.
  • Compruebe si el módulo está instalado ejecutando:
Get-Module -ListAvailable ImportExcel
  • Si el módulo aún no está presente, repita el proceso de instalación de la siguiente manera:
Install-Module -Name ImportExcel -Force

Error de codificación en archivos CSV

Algunos archivos CSV, especialmente los de otros sistemas o los exportados desde aplicaciones de terceros, pueden tener problemas de codificación. Si observa caracteres extraños o datos ilegibles después de exportar a Excel, lo más probable es que se trate de un problema de codificación.

Solución:

  • Utilice el parámetro de codificación UTF8 al importar archivos CSV. Esto asegurará que los caracteres especiales, como letras acentuadas o símbolos, no se dañen.
Import-Csv -Path “C:\path\data.csv” -Encoding UTF8 | Export-Excel “C:\output\data.xlsx”
  • Asegúrese de que el archivo CSV esté guardado en formato UTF-8. Puede abrir el archivo con el Bloc de notas y guardarlo nuevamente seleccionando Save As > Encoding: UTF-8.

Artículos más recientes