Conversor de XLSX para CSV

Solte uma pasta Excel e exporte cada planilha como CSV — individualmente ou todas como .zip. Sem upload.

Solte uma planilha aqui ou
  1. Solte um XLSX (ou XLS / XLSM / ODS) ou clique em "procurar".
  2. Escolha uma planilha no dropdown.
  3. Clique em "Converter e baixar" para uma planilha, ou "Todas como .zip" para a pasta inteira.
  4. Saída é CSV RFC 4180 — UTF-8, separado por vírgulas, com aspas duplas escapadas quando necessário.
O que ele faz?

Lê planilhas Excel e OpenDocument via SheetJS (fork Apache-2.0) e emite cada planilha como CSV usando sheet_to_csv do SheetJS. Valores de célula são convertidos para texto conforme o tipo nativo da pasta — números continuam números, datas renderizam no formato de exibição da pasta, fórmulas usam seus valores calculados em cache. Gráficos, imagens e formatação condicional são descartados — CSV não consegue representá-los.

Pegadinhas comuns

XLSX → CSV é principalmente mecânico, mas alguns padrões produzem saídas surpreendentes.

  • Formatação de data. Excel armazena datas como números seriais; o formato exibido depende do formato numérico da célula. O CSV usa o que Excel renderiza — `2026-04-26`, `4/26/2026`, ou um número serial dependendo de como a célula está configurada. Para forçar ISO 8601, mude a formatação da célula em Excel antes de exportar.
  • Resultados de fórmula vs. fórmulas. CSV não pode representar fórmulas. A saída usa o valor calculado em cache de cada célula no último save. Se a pasta foi editada e não re-salva, valores em cache podem estar desatualizados.
  • Células mescladas. Células mescladas emitem o valor no canto superior esquerdo da mesclagem; outras células mescladas ficam vazias. Isso é comportamento padrão do SheetJS e corresponde ao esperado pela maioria dos consumidores CSV.
  • Números vs. texto. Excel armazena `00123` como número 123 a menos que o tipo de célula seja explicitamente Texto. O CSV reflete o tipo subjacente. Para preservar zeros à esquerda, formate a célula como Texto em Excel antes de exportar.
  • XLSX criptografado. SheetJS Community não descriptografa XLSX protegido por senha. Abra o arquivo em Excel, remova a proteção, salve, e solte aqui de novo.
  • Pastas muito grandes. Pastas acima de ~50 MB podem levar tempo notável para parsear e podem estressar a memória do navegador. Considere dividir em arquivos menores ou usar SheetJS na linha de comando para trabalhos grandes.
Perguntas frequentes

Por que a primeira conversão é lenta?

SheetJS tem ~190 KB gzipped e carrega na primeira escolha de arquivo. Conversões subsequentes na mesma sessão reutilizam o módulo em cache — instantâneas.

Arquivos XLS (legados) são suportados?

Sim — SheetJS Community parseia .xls (BIFF8), .xlsx, .xlsm e .ods. Variantes criptografadas de qualquer um destes não são suportadas.

O CSV usa o separador decimal do meu locale?

Não — saída é sempre RFC 4180 com `.` como ponto decimal e `,` como separador de campo. Para CSV estilo europeu separado por `;`, pós-processe a saída.

Minha pasta é enviada para algum lugar?

Não. Tudo roda no seu navegador — sua planilha é parseada por SheetJS nesta página e nunca enviada a servidor.

Como fórmulas são exportadas?

CSV não pode representar fórmulas. A saída usa o valor calculado em cache de cada célula. Se você precisa do texto da fórmula, é uma exportação diferente — abra o arquivo em Excel e copie colunas de fórmula separadamente.

Por que o CSV não bate exatamente com o que vejo no Excel?

A camada de exibição do Excel aplica formatação numérica, regras condicionais e configurações de locale sobre o valor bruto. CSV é texto puro, então parte desse estilo visual é intencionalmente perdida. Conteúdo da célula é preservado; aparência não.