Conversão de JSON para Excel: por que o achatamento com chaves por ponto é necessário
JSON (JavaScript Object Notation) é um formato tipado e aninhável — pode conter objetos, arrays, números, booleanos e null — enquanto uma planilha plana (como uma única aba do Excel) não representa hierarquia diretamente. Quando você carrega um arquivo JSON nesta ferramenta e gera um XLSX, o processo aplica uma regra de achatamento (flattening) que transforma a estrutura hierárquica em uma tabela de linhas e colunas. As chaves de objetos viram cabeçalhos de coluna, e objetos aninhados são expandidos com nomes no formato chave.chave_filha (ex.: endereco.cidade). Essa etapa não existe ao converter de CSV ou XLSX, que já são naturalmente planos.
A ferramenta aceita um único arquivo JSON por conversão. O JSON deve ser “em formato de tabela” — ou um array de objetos (cada objeto vira uma linha, suas chaves viram colunas) ou um array de arrays (cada array interno vira uma linha, a primeira linha pode conter cabeçalhos). Se o arquivo não se encaixar nesses padrões, o processo é interrompido com a mensagem “This JSON is invalid or not table‑shaped.”.
O processo de achatamento: chaves com ponto e tratamento de arrays aninhados
Quando um objeto JSON contém outros objetos, a ferramenta achata a estrutura concatenando os nomes das chaves com um ponto (.). Por exemplo, considere este JSON:
[
{
"nome": "Ana",
"endereco": {
"cidade": "São Paulo",
"cep": "01000-000"
},
"telefones": ["11-99999-0000", "11-88888-0000"]
}
]
Na planilha gerada, as colunas serão nome, endereco.cidade, endereco.cep e telefones. O campo telefones é um array de primitivos, e a ferramenta o trata como um único valor, contendo a representação JSON desse array como uma string (ex.: ["11-...","11-..."]). Se um objeto contém um array de objetos, esse array não é expandido em linhas separadas; em vez disso, o array inteiro é transformado em uma string JSON e colocado em uma única célula.
Tipos de dados: JSON versus XLSX – a vantagem sobre CSV
O formato de saída XLSX é um workbook XML compactado (ZIP) que pode armazenar nativamente tipos de dados como números, booleanos, strings e datas. Diferentemente do CSV, que reduz tudo a strings, o XLSX mantém a semântica dos tipos. Ao converter JSON para XLSX, números viram células numéricas, booleanos (true/false) viram células booleanas, strings viram células de texto e null é convertido em célula vazia. Isso é importante para quem precisa preservar a integridade dos dados: valores 0 não são confundidos com vazio, e false não vira texto "false".
Entretanto, a ferramenta não calcula fórmulas nem preserva formatação. Ela escreve apenas os dados visíveis estáticos vindos do JSON. Se o JSON contiver strings que parecem fórmulas (ex.: "=SUM(A1:A10)"), elas serão tratadas como texto, não como funções executáveis. Isso evita riscos de injeção de fórmulas.
Regras e limites: erros conhecidos
A ferramenta opera totalmente no navegador (processamento client‑side) — nenhum arquivo é enviado a servidores. Há limites de tamanho e complexidade. Os erros que podem aparecer são:
- “Choose a CSV, JSON or XLSX file.”
- “This file is too large. Use a file under ‹max›.” – O valor
‹max›é substituído dinamicamente. O limite de tamanho do arquivo é de 8 MB. - “This JSON is invalid or not table‑shaped.” – JSON malformado ou não é um array de objetos/arrays.
- “This file has no table rows.” – Array vazio.
- “This table has more than ‹max› rows.” – Excede limite de 10.000 linhas.
- “This table has more than ‹max› columns.” – Excede limite de 200 colunas.
- “Conversion cancelled.” – Usuário interrompeu.
- “This conversion is taking too long. Try a smaller file.” – Timeout de processamento, que ocorre após cerca de 12 segundos.
A ferramenta gera apenas uma planilha (primeira worksheet), nomeada Sheet1. Não há suporte a múltiplas abas, fórmulas ou formatação condicional. A saída é uma cópia fiel dos dados achatados.
Quem precisa dessa ferramenta
O público é variado:
- Analistas de dados que recebem respostas de APIs em JSON e precisam analisar os dados no Excel sem escrever scripts de flattening.
- Desenvolvedores que exportam configurações hierárquicas e querem compartilhá-las com equipes não técnicas que usam planilhas.
- Profissionais de BI que precisam preservar tipos numéricos e booleanos — algo que CSV não faz.
- Qualquer pessoa que precise colaborar em dados vindos de fontes JSON com colegas que só trabalham com Excel.
Perguntas frequentes
-
O que acontece se meu JSON contiver arrays dentro de objetos?
- Se um objeto contém um array de objetos, esse array não é expandido em linhas separadas; em vez disso, o array inteiro é transformado em uma string JSON e colocado em uma única célula. Arrays de valores primitivos (strings, números) são mantidos como uma lista em uma única célula.
-
Posso preservar a formatação original do JSON (cores, indentação) no Excel?
- Não. A ferramenta gera apenas dados estáticos, sem formatação ou estilos. O XLSX resultante conterá apenas os valores, sem cores, fontes ou alinhamentos.
-
O limite de linhas e colunas é fixo?
- Sim, o limite é de 10.000 linhas e 200 colunas. Mensagens de erro mostram
‹max›substituído pelo limite atual.
- Sim, o limite é de 10.000 linhas e 200 colunas. Mensagens de erro mostram
-
A ferramenta funciona offline?
- Sim, todo o processamento é feito no navegador. Após carregar a página uma vez (com conexão), você pode desconectar a internet e ainda converter arquivos.
-
O que significa “table‑shaped”?
- Significa que o JSON deve ser um array de objetos ou um array de arrays. Um único objeto também é aceito e convertido em uma tabela de uma linha.
-
Posso converter um arquivo JSON com mais de 100 MB?
- Não. O limite de tamanho do arquivo é de 8 MB. Arquivos maiores são rejeitados com a mensagem “This file is too large. Use a file under ‹max›.”.
Considerações sobre a estrutura de dados e erros comuns
Um erro frequente de quem usa a ferramenta é tentar converter um JSON que não é um array. Por exemplo, um único objeto:
{ "nome": "João", "idade": 30 }
Isso é uma entrada válida e se converte em uma tabela de uma linha.
Outro erro é usar chaves com ponto no próprio JSON. Se a chave já contiver ponto (ex.: "endereço.cidade"), o achatamento criará um nome como endereço.cidade.cidade, causando confusão. A ferramenta não escapa pontos nas chaves originais.
Valores null em JSON são convertidos para células vazias no Excel, não para o texto "null". Já o valor booleano false vira o tipo booleano FALSO no Excel (ou FALSE em inglês), não a string "false". Isso permite filtros e fórmulas corretas.
A ferramenta não preserva a ordenação original das chaves. No JSON, objetos são conjuntos não ordenados de pares chave-valor; a ferramenta organiza as colunas na ordem de aparecimento no primeiro objeto.
Por fim, o arquivo XLSX gerado é compatível com Microsoft Excel 2007 e posteriores, LibreOffice Calc, Google Planilhas (após upload) e qualquer software que leia o padrão Office Open XML.