Não precisa se preocupar! Veja como converter CSV para XLSX sem abrir o Excel – basta usar o CMD!

Etapas para converter CSV para Excel (XLS/XLSX) via linha de comando

No mundo do Windows, o PowerShell é o canivete suíço para automação de sistemas. Quando se trata de  conversão de CSV para Excel, o PowerShell oferece uma solução elegante por meio do módulo ImportExcel.

Este módulo ImportExcel foi projetado especificamente para manipular arquivos do Excel diretamente da linha de comando, sem a necessidade do Microsoft Office instalado. Sua principal vantagem está na capacidade de lidar com arquivos grandes com alta eficiência, mantendo o formato e a estrutura de dados originais.

Introdução ao módulo ImportExcel

Antes de aproveitar o poder deste módulo, você precisa instalá-lo primeiro. O processo de instalação é muito simples:

Install-Module -Name ImportExcel -Force -Scope CurrentUser

Algumas coisas importantes sobre este processo de instalação:

  1. Parameter -Force garante que a instalação seja executada sem confirmação adicional
  2. -Scope CurrentUser faz com que o módulo seja instalado apenas para sua conta corrente
  3. O processo requer uma conexão com a Internet para baixar o pacote da Galeria do PowerShell

Se você encontrar um erro sobre a política de execução, execute-a primeiro:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Script mágico de conversão de CSV para Excel

Depois que o módulo for instalado com êxito, você poderá executar imediatamente o script de conversão de arquivo CSV para Excel com a seguinte sintaxe:

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

Vamos dissecar este script parte por seção:

  • Import-Csv: ler um arquivo CSV e convertê-lo em um objeto do PowerShell
  • | (Pipeline): Envia dados de um comando para o próximo
  • Export-Excel: Receber dados e gravá-los em um arquivo do Excel
  • -WorksheetName: Especifica o nome da planilha a ser criada

Variações avançadas para necessidades complexas

A verdadeira força do PowerShell está em sua flexibilidade. Aqui estão algumas modificações avançadas que você pode implementar:

1. Converta vários CSVs de uma só vez

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

2. Adicione várias planilhas

$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. Com formatação automática

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

Solucionando problemas

Embora o processo de conversão de um arquivo CSV para Excel (XLSX) usando  o PowerShell tenda a ser simples, na prática, você pode encontrar alguns problemas técnicos, especialmente se estiver usando a linha de comando pela primeira vez ou trabalhando com arquivos grandes. A seguir estão alguns dos problemas que surgem com frequência e como lidar com eles de forma eficaz:

Módulos desconhecidos

Se você receber uma mensagem de erro como The term ‘Export-Excel’ is not recognized, isso significa que o PowerShell não reconhece comandos do módulo ImportExcel. Esse problema geralmente ocorre porque o módulo não está instalado corretamente ou o PowerShell está em execução sem permissão de administrador.

Solução:

  • Verifique se você está executando o PowerShell como administrador. Clique com o botão direito do mouse no ícone do PowerShell e selecione Executar como administrador antes de executar o comando Install-Module.
  • Verifique se o módulo está instalado executando:
Get-Module -ListAvailable ImportExcel
  • Se o módulo ainda não estiver presente, repita o processo de instalação:
Install-Module -Name ImportExcel -Force

Últimos artigos