Conversor de Excel para JSON
Faça upload de um arquivo Excel para converter dados de planilha para formato JSON
Arraste o arquivo Excel aqui, ou clique para selecionar
O que é Excel para JSON?
Excel para JSON é uma ferramenta online de conversão de formato de dados que converte dados de planilhas Microsoft Excel (.xlsx/.xls) para o formato JSON (JavaScript Object Notation).
Excel é o software de planilhas mais popular do mundo, amplamente utilizado para armazenamento de dados, análise e criação de relatórios. JSON é o formato de troca de dados mais utilizado em aplicações web modernas e APIs, conhecido por sua estrutura clara e fácil análise.
Com esta ferramenta, você pode converter rapidamente dados de planilhas Excel em arrays JSON para uso em programação, análise de dados e desenvolvimento web. Todo o processamento é feito localmente em seu navegador, garantindo a segurança dos dados.
Como Usar
Como usar
- Clique na área de upload ou arraste e solte um arquivo Excel (suporta os formatos .xlsx e .xls)
- Se houver várias planilhas, selecione a desejada no menu suspenso
- Escolha se a primeira linha deve ser usada como nomes de campo dos objetos JSON
- Os dados JSON formatados serão gerados automaticamente, prontos para copiar
Notas sobre Planilhas
- Confira a planilha selecionada, a linha de cabeçalho, células mescladas, linhas vazias e formatos de data antes de usar o JSON.
- Planilhas costumam misturar formatação de exibição com valores brutos, então verifique números e datas após a conversão.
Casos de uso
Princípio técnico
As pastas de trabalho .xlsx modernas são arquivos SpreadsheetML definidos por ECMA-376 / ISO/IEC 29500 (o padrão Office Open XML): a extensão .xlsx é um contêiner ZIP cujas entradas são documentos XML em xl/worksheets/sheetN.xml, com strings armazenadas em uma tabela de strings compartilhadas xl/sharedStrings.xml e tipos de célula declarados pelo atributo t (s = sharedString, n = number, b = boolean, str = string inline, d = data em ISO 8601). A página lê o arquivo enviado com FileReader.readAsArrayBuffer e então entrega o ArrayBuffer ao SheetJS (xlsx). XLSX.read(buffer, {type: 'array'}) retorna um objeto de pasta de trabalho cujo array SheetNames direciona o seletor de planilha, e XLSX.utils.sheet_to_json(sheet, options) percorre a grade de células para produzir um array de objetos (com a linha de cabeçalho como chaves) ou um array de arrays quando header: 1 é passado.
O formato legado .xls é o formato binário BIFF8 (Excel 97-2003), que o SheetJS também decodifica através do mesmo ponto de entrada read() mas com type: 'binary' para FileReader.readAsBinaryString ou 'array' quando lido como bytes. Valores de data das células em ambos os formatos são armazenados como números seriais (dias desde a época de 1900 no Excel, com o bug histórico de ano bissexto de 1900-02-29 que desloca datas antes de 1900-03-01 em um dia, ou dias desde 1904-01-01 quando a flag date1904 da pasta de trabalho está definida no Excel para Mac). A conversão para um Date JavaScript é (serial - 25569) * 86400 * 1000 milissegundos após a época Unix para o sistema 1900, uma vez que o bug de ano bissexto é contabilizado. Fórmulas residem no atributo f e o SheetJS reporta seu último resultado em cache em v; se a pasta de trabalho foi salva por uma ferramenta que não recalculou (ex. algumas exportações por script), v pode estar ausente ou desatualizado.
Quando a primeira linha é usada como cabeçalhos, células de cabeçalho duplicadas ou vazias forçam o SheetJS a pular ou renomear automaticamente as chaves (ex. __EMPTY, __EMPTY_1), o que quebra contratos JSON downstream. Intervalos de células mescladas (declarados em worksheet/mergeCells) expõem o valor apenas na âncora superior esquerda e emitem undefined nas células finais mescladas, então uma linha de título mesclada produz um registro populado seguido de N - 1 registros esparsos. Para pastas de trabalho acima de dezenas de megabytes, o caminho síncrono XLSX.read() pode bloquear a thread da UI; a alternativa de streaming é mover a análise para um Web Worker para que a thread principal permaneça responsiva.
- .xlsx é um contêiner ZIP de XML (ECMA-376 / ISO/IEC 29500); .xls é o formato binário BIFF8; SheetJS XLSX.read(buffer, {type: 'array'}) lida com ambos via FileReader.readAsArrayBuffer.
- Opções de sheet_to_json: header: 1 retorna array de arrays; header: 'A' usa letras de colunas da planilha; defval: null preenche células esparsas com null em vez de descartar a chave; raw: false aplica a formatação de exibição do Excel.
- O número serial de data do Excel é dias desde 1900-01-01 (com o bug de ano bissexto de 1900-02-29; para o sistema de datas 1904 do Mac, dias desde 1904-01-01); JS Date ms = (serial - 25569) * 86400000 após a época Unix.
- Células de cabeçalho duplicadas ou vazias tornam-se chaves renomeadas automaticamente (__EMPTY, __EMPTY_1) ou colidem silenciosamente; valide o JSON para essas strings antes de confiar no schema.
- Intervalos de células mescladas (worksheet.mergeCells) expõem o valor apenas na âncora superior esquerda; células finais na mesclagem são undefined, então uma linha de título mesclada gera um registro com o valor e N-1 registros com campos vazios.
- Células de fórmula armazenam a expressão em f e o último resultado em cache em v; ferramentas que salvam sem recalcular deixam v desatualizado ou ausente, e o SheetJS retorna v como está.
- Mova XLSX.read para um Web Worker para pastas de trabalho acima de ~10 MB; o caminho de análise síncrona bloqueia requestAnimationFrame e pode congelar a aba por vários segundos em planilhas grandes.
Exemplos
Planilha de funcionários para array de objetos JSON
Linhas do Excel (planilha Staff):
id | name | dept | salary
1 | Alice | Engineering| 8500
2 | Bob | Sales | 6200
Saída JSON:
[
{ "id": 1, "name": "Alice", "dept": "Engineering", "salary": 8500 },
{ "id": 2, "name": "Bob", "dept": "Sales", "salary": 6200 }
]Pasta de trabalho com várias planilhas (orders.xlsx)
Planilhas da pasta de trabalho: ["Customers", "Orders", "Products"]
Selecionar planilha: Orders
Primeira linha usada como cabeçalhos: order_id, customer_id, total, date
Resultado: 1.284 linhas convertidas em objetos JSON
Células finais vazias viram null, não string vaziaCélula de data do Excel para string ISO 8601
Célula A2 (formatada como Data no Excel): 46173 (número de série do Excel)
Exibida no Excel: 2026-06-01
Saída JSON:
{ "order_date": "2026-06-01T00:00:00.000Z" }
Observação: o Excel armazena datas como números seriais; esta ferramenta as normaliza para strings ISOCabeçalhos com espaços e caracteres chineses
Linha de cabeçalho: "Order No." | "客户姓名" | "金额 (USD)"
As chaves JSON são preservadas literalmente:
{
"Order No.": "A-1024",
"客户姓名": "王小明",
"金额 (USD)": 199.50
}Perguntas frequentes
Meu arquivo Excel é enviado para algum servidor?
Não. O arquivo .xlsx, .xls ou .csv é processado no seu navegador usando o SheetJS. Os bytes nunca saem do seu dispositivo. Você pode confirmar na aba Rede enquanto carrega um arquivo.
Quais recursos do Excel sobrevivem à conversão?
Valores de células, datas (como strings ISO ou números seriais do Excel, dependendo da opção), números, booleanos e texto. Gráficos, imagens, formatação condicional, fórmulas (mantém-se o valor em cache, não a fórmula), comentários e células mescladas são descartados ou simplificados.
Todas as planilhas são convertidas?
Apenas a planilha selecionada é convertida. Use o seletor de planilha para escolher qual exportar. Se precisar de várias planilhas, converta uma de cada vez.
Como cabeçalhos e linhas são mapeados para JSON?
Se 'primeira linha como cabeçalho' estiver ativado, o resultado é um array de objetos com as células de cabeçalho como chaves. Desativado → um array de arrays com os valores das células. Células vazias viram null na saída.
Como as datas são tratadas?
O Excel armazena datas como números seriais (dias desde 1900). A página converte para strings ISO 8601 (2026-06-13) por padrão. Mude para 'bruto' para manter o número serial, útil quando você for reimportar no Excel depois. Células só de horário viram strings como 'T14:30:00'.
E as fórmulas?
As fórmulas não são avaliadas; só o valor calculado em cache (último salvo pelo Excel) é usado. Se você precisa de resultados atualizados das fórmulas, abra o arquivo no Excel, recalcule (F9), salve e envie de novo.
Qual é o limite de tamanho do arquivo?
A memória do navegador limita. Desktops modernos lidam com pastas de trabalho de até algumas centenas de MB. Para arquivos muito grandes (> 1 milhão de linhas), use uma ferramenta de script no desktop (Python pandas, Excel Power Query) — o navegador vai ficar sem memória.
Ferramentas relacionadas
Ferramenta de Escape JSON
Ferramenta de escape JSON online gratuita para escape e unescape rápido de strings JSON. Gerencie aspas, novas linhas, tabulações e caracteres especiais, fácil incorporação em código.
Conversor de JSON para XML
Conversor gratuito de JSON para XML online com elemento raiz personalizável e recuo. Converta dados JSON em XML formatado instantaneamente no seu navegador.
Codificador de Entidades HTML
Codificador e decodificador de entidades HTML online gratuito convertendo caracteres especiais em entidades HTML. Previna ataques XSS, garanta exibição segura de HTML.
Conversor de CSV para SQL
Ferramenta online de CSV para SQL com suporte a nomes de tabela personalizados, delimitadores e estilos de aspas. Converta rapidamente dados CSV em declarações SQL INSERT para fácil importação no banco de dados.
Conversor Unicode
Codificador e decodificador Unicode online gratuito suportando múltiplos formatos: \uXXXX, &#xXXXX;, etc. Gerencie texto internacionalizado facilmente, resolva problemas de codificação.
Codificador/Decodificador URL
Codificador e decodificador URL online gratuito gerenciando caracteres especiais e parâmetros chineses. Converta parâmetros URL instantaneamente, corrija problemas de codificação, garanta transmissão correta de dados.
