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.