Conversor de XLSX para CSV
Solte uma pasta Excel e exporte cada planilha como CSV — individualmente ou todas como .zip. Sem upload.
- Solte um XLSX (ou XLS / XLSM / ODS) ou clique em "procurar".
- Escolha uma planilha no dropdown.
- Clique em "Converter e baixar" para uma planilha, ou "Todas como .zip" para a pasta inteira.
- 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.