XLSX vs CSV: O Que Muda
Antes de converter, entenda o que o CSV preserva e o que ele descarta:
| Recurso | XLSX | CSV |
|---|---|---|
| Valores de células (texto, números) | Sim | Sim |
| Fórmulas | Sim (armazenadas) | Não (apenas valores calculados) |
| Formatação (negrito, cores) | Sim | Não |
| Múltiplas abas | Sim | Não (uma aba por arquivo) |
| Gráficos e imagens | Sim | Não |
| Tipos de dados (datas, moeda) | Sim (células tipadas) | Apenas texto simples |
| Tamanho do arquivo (1000 linhas) | ~50–200 KB | ~10–50 KB |
| Compatibilidade universal | Requer Excel/leitor | Qualquer editor de texto |
Se você precisa apenas dos dados brutos — para importação em banco de dados, análise de dados ou compartilhamento entre plataformas — o CSV é a escolha certa. Se você precisar preservar formatação, fórmulas ou múltiplas abas, mantenha o formato XLSX.
Método 1: Conversor Online (CleverUtils)
O método mais rápido. Não requer instalação de software e funciona em qualquer dispositivo com navegador.
- Acesse cleverutils.com/xlsx-to-csv
- Clique em Escolher Arquivo XLSX ou arraste e solte sua planilha
- Clique em Converter
- Baixe o arquivo CSV resultante
Ideal para: Conversões rápidas e pontuais. Nenhuma instalação necessária. Os arquivos são criptografados durante o upload e excluídos automaticamente em 2 horas.
Método 2: Microsoft Excel
Se você já tem o Excel instalado, pode exportar diretamente:
- Abra o arquivo
.xlsxno Excel - Se a pasta de trabalho tiver múltiplas abas, clique na aba que você deseja exportar
- Vá em Arquivo → Salvar Como (ou Arquivo → Salvar uma Cópia nas versões mais recentes)
- No menu suspenso “Tipo de arquivo”, selecione CSV (separado por vírgulas) (*.csv)
- Escolha o local de salvamento e clique em Salvar
- O Excel avisará que alguns recursos não são compatíveis com CSV — clique em Sim para continuar
O Excel oferece diversas variantes de CSV no diálogo Salvar Como:
| Opção | Codificação | Delimitador | Ideal Para |
|---|---|---|---|
| CSV (separado por vírgulas) | Padrão do sistema (geralmente Windows-1252) | Vírgula | Dados em inglês (EUA/Reino Unido) |
| CSV UTF-8 (separado por vírgulas) | UTF-8 com BOM | Vírgula | Caracteres internacionais |
| CSV (Macintosh) | Mac Roman | Vírgula | Aplicativos legados do macOS |
| CSV (MS-DOS) | Página de código OEM/DOS | Vírgula | Programas legados do DOS |
Dica: Sempre escolha CSV UTF-8 se seus dados contiverem caracteres acentuados, texto CJK ou qualquer símbolo não-ASCII. O “CSV (separado por vírgulas)” padrão usa uma codificação dependente do idioma do sistema que pode corromper caracteres especiais em outros sistemas.
Método 3: Google Sheets
Gratuito e disponível em qualquer plataforma com navegador:
- Abra sheets.google.com e faça upload do seu arquivo XLSX (Arquivo → Abrir → Fazer upload)
- O Google Sheets importa a pasta de trabalho e preserva a maior parte da formatação visualmente
- Selecione a aba que você deseja exportar
- Vá em Arquivo → Fazer download → Valores separados por vírgula (.csv)
- A aba atual é baixada como arquivo
.csv
O Google Sheets sempre exporta CSV com codificação UTF-8, que é a opção mais segura para dados internacionais. O delimitador é sempre vírgula, independentemente das configurações de idioma.
Método 4: LibreOffice Calc
O LibreOffice é gratuito, de código aberto e disponível no Windows, macOS e Linux. Ele oferece o maior controle sobre as configurações de exportação CSV.
- Abra o arquivo
.xlsxno LibreOffice Calc - Vá em Arquivo → Salvar Como
- Selecione Texto CSV (.csv) como formato
- Clique em Usar formato Text CSV quando solicitado
- Na caixa de diálogo de exportação, configure:
- Conjunto de caracteres: Unicode (UTF-8)
- Delimitador de campo: vírgula
,(ou ponto e vírgula, tabulação) - Delimitador de texto: aspas duplas
"
- Clique em OK
Conversão em Lote via Linha de Comando
O LibreOffice suporta modo headless (sem interface gráfica), sendo ideal para processamento em lote:
# Converter um único arquivo
libreoffice --headless --convert-to csv report.xlsx
# Converter todos os arquivos XLSX no diretório atual
libreoffice --headless --convert-to csv *.xlsx
# Especificar diretório de saída
libreoffice --headless --convert-to csv --outdir ./csv-output/ *.xlsx
Nota: O modo headless do LibreOffice exporta apenas a primeira aba. Para pastas de trabalho com múltiplas abas, use um script Python (Método 5) ou converta cada aba manualmente.
Método 5: Python (pandas)
O Python com a biblioteca pandas é a melhor opção para conversões automatizadas, repetíveis ou em lote. Ele lida nativamente com pastas de trabalho com múltiplas abas, codificação e delimitadores personalizados.
Conversão Básica
import pandas as pd
# Lê a primeira aba e salva como CSV
df = pd.read_excel("report.xlsx")
df.to_csv("report.csv", index=False, encoding="utf-8-sig")
Converter Todas as Abas em Arquivos CSV Separados
import pandas as pd
xlsx = pd.ExcelFile("workbook.xlsx")
for sheet_name in xlsx.sheet_names:
df = pd.read_excel(xlsx, sheet_name=sheet_name)
filename = f"{sheet_name}.csv"
df.to_csv(filename, index=False, encoding="utf-8-sig")
print(f"Salvo {filename}")
Conversão em Lote de Múltiplos Arquivos XLSX
import pandas as pd
from pathlib import Path
for xlsx_file in Path(".").glob("*.xlsx"):
df = pd.read_excel(xlsx_file)
csv_file = xlsx_file.with_suffix(".csv")
df.to_csv(csv_file, index=False, encoding="utf-8-sig")
print(f"{xlsx_file} → {csv_file}")
Instalação: pip install pandas openpyxl — o mecanismo openpyxl é necessário para leitura de arquivos .xlsx. Ele é usado automaticamente pelo pandas quando instalado.
Método 6: Ferramentas de Linha de Comando
Para ambientes de servidor, pipelines de CI/CD ou fluxos de trabalho com scripts onde não é possível abrir uma interface gráfica.
ssconvert (Gnumeric)
Um conversor de planilhas leve por linha de comando incluído no Gnumeric:
# Instalar no Ubuntu/Debian
sudo apt install gnumeric
# Converter arquivo único
ssconvert report.xlsx report.csv
# Exportar todas as abas (cria report.csv.0, report.csv.1, etc.)
ssconvert -S report.xlsx report.csv
# Conversão em lote de todos os arquivos XLSX
for f in *.xlsx; do ssconvert "$f" "${f%.xlsx}.csv"; done
csvkit (in2csv)
Um conjunto de ferramentas baseado em Python especificamente projetado para operações com CSV:
# Instalar
pip install csvkit
# Converter (primeira aba por padrão)
in2csv report.xlsx > report.csv
# Especificar uma aba pelo nome
in2csv --sheet "Sales Q4" report.xlsx > sales-q4.csv
# Listar todos os nomes de abas
in2csv --names report.xlsx
Problemas Comuns e Como Resolvê-los
Problemas de Codificação (Caracteres Corrompidos)
O problema mais comum. Caracteres acentuados (é, ü, ñ), texto CJK ou símbolos como € aparecem como é, ??? ou outro texto corrompido.
Causa raiz: O CSV foi salvo em uma codificação, mas aberto em outra. O Excel no Windows usa por padrão a página de código local (por exemplo, Windows-1252 para o Ocidente Europeu), e não UTF-8.
Solução:
- Sempre salve como UTF-8 com BOM (marca de ordem de bytes). O BOM indica ao Excel e outros aplicativos que o arquivo está em UTF-8.
- Em Python: use
encoding="utf-8-sig"(UTF-8 com BOM) em vez deencoding="utf-8" - Ao abrir um CSV no Excel: use o assistente de importação Dados → De Texto/CSV, que permite selecionar a codificação antes de importar
Incompatibilidade de Delimitadores
Alguns idiomas europeus usam ponto e vírgula (;) em vez de vírgulas como delimitador de CSV, pois vírgulas são usadas como separadores decimais nessas localidades (por exemplo, 1.234,56 em alemão).
Sintomas: Todos os dados aparecem em uma única coluna ao abrir no Excel, ou valores numéricos ficam divididos entre colunas.
Solução:
- Verifique o idioma do sistema: usuários do Windows em localidades alemãs, francesas ou italianas podem precisar de ponto e vírgula
- Em Python:
df.to_csv("file.csv", sep=";")para saída delimitada por ponto e vírgula - No LibreOffice: defina explicitamente o delimitador de campo durante a exportação
- Ao importar: use o assistente de importação de texto e especifique o delimitador correto
Pastas de Trabalho com Múltiplas Abas
O formato CSV suporta exatamente uma aba por arquivo. Ao converter uma pasta de trabalho XLSX com múltiplas abas, a maioria das ferramentas exporta apenas a primeira (ativa).
Solução:
- Exporte cada aba separadamente usando o script Python de múltiplas abas acima
- Use
ssconvert -S, que cria automaticamente arquivos CSV numerados para cada aba - No Excel ou Google Sheets, alterne manualmente as abas e exporte cada uma
Formatação de Datas e Números
Datas e números podem mudar ao converter para CSV porque o CSV não tem o conceito de tipos de dados. Uma data como 2026-03-24 pode se tornar 46108 (número serial do Excel) ou 3/24/2026 (formato dependente do idioma).
Solução:
- Formate as colunas de data como texto no formato desejado antes de exportar (por exemplo,
YYYY-MM-DDpara ISO 8601) - Em Python:
df.to_csv(..., date_format="%Y-%m-%d") - Para números, remova separadores de milhar e garanta formato decimal consistente
Qual Método Você Deve Usar?
| Método | Velocidade | Múltiplas Abas | Controle de Codificação | Lote | Ideal Para |
|---|---|---|---|---|---|
| CleverUtils | Instantâneo | Primeira aba | Auto (UTF-8) | Não | Conversões rápidas e pontuais |
| Excel | Rápido | Manual por aba | 4 opções | Não | Usuários com Excel instalado |
| Google Sheets | Médio | Manual por aba | Apenas UTF-8 | Não | Chromebook / sem app desktop |
| LibreOffice | Rápido | Primeira aba (CLI) | Controle total | Sim (CLI) | Linux, lote via CLI |
| Python | Rápido | Todas as abas | Controle total | Sim | Desenvolvedores, automação |
| CLI (ssconvert) | Rápido | Todas as abas (-S) | UTF-8 padrão | Sim | Servidores, pipelines CI/CD |