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

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

Erro de codificação em arquivos CSV

Alguns arquivos CSV, especialmente aqueles de outros sistemas ou exportações de aplicativos de terceiros, podem ter problemas de codificação. Se você notar caracteres estranhos ou dados ilegíveis após exportar para o Excel, provavelmente é um problema de codificação.

Solução:

  • Use o parâmetro de codificação UTF8 ao importar arquivos CSV. Isso garantirá que caracteres especiais, como letras ou símbolos acentuados, não sejam danificados.
Import-Csv -Path “C:\path\data.csv” -Encoding UTF8 |  Export-Excel “C:\output\data.xlsx”
  • Certifique-se de que o arquivo CSV esteja salvo no formato UTF-8. Você pode abrir o arquivo com o Bloco de Notas e salvá-lo novamente selecionando Save As > Encoding: UTF-8.

Últimos artigos