ToolActToolAct

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

  1. Clique na área de upload ou arraste e solte um arquivo Excel (suporta os formatos .xlsx e .xls)
  2. Se houver várias planilhas, selecione a desejada no menu suspenso
  3. Escolha se a primeira linha deve ser usada como nomes de campo dos objetos JSON
  4. 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

Transformar uma planilha de pasta de trabalho em JSON para desenvolvimentoImporte um arquivo .xlsx ou .xls, escolha a planilha e converta-a em JSON destacado para mocks, dados iniciais, opções de dropdown, rascunhos de localização ou exemplos de API. A pasta de trabalho é lida e analisada inteiramente no navegador pela biblioteca SheetJS, então planilhas de clientes, RH ou finanças internas nunca saem do dispositivo durante a conversão.
Controlar se a primeira linha vira chaves de objetoAlterne a opção de primeira linha como cabeçalho para alternar entre um array de objetos indexados por nome de coluna e uma exportação em estilo array indexada por posição de coluna, e use as contagens de linhas e campos para detectar colunas em branco inesperadas ou seleção errada de planilha. Isso funciona bem como uma etapa intermediária controlada antes de colar a saída no destino real.
Manter a análise local da planilha para tarefas de dados pequenosA página lê a pasta de trabalho no navegador com o SheetJS e copia a saída diretamente. É indicada para planilhas revisáveis, não para arquivos enormes, recálculo de fórmulas, macros, caches de tabela dinâmica ou lógica de pastas de trabalho protegidas. Faça uma verificação rápida no sistema de destino antes de tratar o JSON como definitivo.
Identificar valores de fórmula versus strings armazenadasO SheetJS retorna o último valor em cache de uma fórmula no navegador, então uma coluna cheia de totais calculados aparece como números simples no JSON, e células com caches desatualizados podem divergir do que o Excel exibe atualmente. Faça uma varredura rápida por zeros inesperados ou strings incompatíveis antes de tratar a exportação como definitiva, e salve novamente a pasta de trabalho se fórmulas foram adicionadas após o último salvamento.
Verificar a linha de cabeçalho antes que o schema quebreQuando a opção de primeira linha como cabeçalho está ativada, nomes de colunas duplicados ou em branco produzem chaves JSON inválidas e algumas chaves podem ser renomeadas automaticamente. Abra o JSON, procure por 'undefined' ou sufixos numéricos e limpe a planilha de origem quando as chaves precisarem permanecer estáveis em reimportações, especialmente para interfaces TypeScript ou geração de schema GraphQL downstream.

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 vazia

Cé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 ISO

Cabeç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.