Conversor de JSON para Excel

Converta JSON para Excel online — grátis, instantâneo e privado. O seu ficheiro é processado diretamente no seu browser, sem nunca ser enviado para os nossos servidores.

Resultado

Os ficheiros convertidos e uma pré-visualização aparecerão aqui.

Pronto. Escolha um ficheiro de tabela para converter.

Como funciona a conversão

  • Uma matriz de objetos é convertida em linhas e colunas; objetos aninhados são achatados em colunas com chaves separadas por pontos, como endereco.cidade.
  • A folha de cálculo é guardada como uma única folha de valores simples — sem fórmulas, estilos ou folhas adicionais.

O seu ficheiro de tabela é convertido diretamente no seu navegador. Nada é enviado para o BroBroGo.

Perguntas frequentes

Como converter JSON para Excel?

Arraste o seu ficheiro JSON e clique em converter — o ficheiro Excel fica pronto para descarregar em segundos, acompanhado de uma pré-visualização do resultado. Tudo é executado localmente no seu dispositivo.

Qual é o tamanho máximo de ficheiro suportado?

Até 8 MB, 10 000 linhas e 200 colunas por ficheiro. Para conjuntos de dados maiores, recomendamos dividi-los em ficheiros mais pequenos antes de converter.

O que faz esta página

Esta página aceita um ficheiro JSON e devolve um ficheiro Excel (XLSX). O processo é executado inteiramente no navegador: o navegador analisa o ficheiro e escreve o resultado convertido localmente no dispositivo; nada é enviado para um servidor. O utilizador carrega um ficheiro JSON de cada vez, a ferramenta converte a estrutura hierárquica numa tabela plana e apresenta uma pré-visualização com o número de linhas e colunas resultantes. A descarga é um ficheiro XLSX com uma única folha de cálculo, contendo apenas os dados estáticos — sem fórmulas, formatação condicional ou múltiplas folhas.

A conversão aplica uma regra de achatamento (flattening) a objetos e arrays aninhados. As chaves de objetos tornam-se cabeçalhos de coluna; os arrays de objetos tornam-se linhas. Chaves aninhadas são expandidas com nomes de caminho separados por pontos (por exemplo, endereco.cidade). Arrays de arrays (em que cada elemento do array de topo é ele próprio um array, em vez de um objeto) são mantidos como linhas de tabela, sem criação de cabeçalhos a partir de nomes de chave – o tratamento é diferente conforme a forma do JSON de entrada.

Porque é diferente de outras conversões

A diferença central está na natureza dos formatos. JSON é um formato tipado e hierárquico: pode conter objetos, arrays, números, booleanos e nulos, organizados em níveis arbitrários de aninhamento. Uma folha de cálculo plana (XLSX) não suporta essa hierarquia de forma nativa. Por isso, é necessário aplicar uma regra de achatamento — algo que não é preciso quando se converte CSV para Excel ou Excel para CSV, pois esses formatos já são naturalmente planos.

O formato de destino, XLSX, é um livro de trabalho XML comprimido (um ficheiro ZIP que contém ficheiros XML). Diferente do CSV, que reduz todos os valores a texto, o XLSX consegue armazenar tipos nativos como números, booleanos e datas. Isto significa que, ao converter JSON para XLSX, os números e booleanos presentes no JSON são preservados como números e booleanos nas células — não são convertidos em cadeias de caracteres. No entanto, a ferramenta não preserva fórmulas ou estilos da fonte JSON (o que não faria sentido, dado que JSON não os possui). A saída contém apenas os dados visíveis e estáticos.

Enquanto uma conversão para CSV perderia a distinção entre true (booleano) e "true" (texto), o XLSX mantém essa diferença. Isto é relevante para quem precisa de analisar dados numéricos ou lógicos sem ter de os reinterpretar depois.

Como o JSON é achatado para tabela

O algoritmo de achatamento percorre cada objeto no array de topo. Para cada chave cujo valor é um primitivo (string, número, booleano ou nulo), essa chave torna-se uma coluna, e o valor é colocado na célula correspondente. Se o valor for um objeto aninhado, as suas chaves são expandidas recursivamente, usando o nome da chave pai como prefixo separado por um ponto. Exemplo:

{
  "nome": "Ana",
  "endereco": {
    "cidade": "Lisboa",
    "codigo_postal": "1000-001"
  },
  "contactos": [
    {"tipo": "email", "valor": "ana@exemplo.com"},
    {"tipo": "telemovel", "valor": "912345678"}
  ]
}

Este objeto, ao ser achatado, produziria colunas nome, endereco.cidade, endereco.codigo_postal. O array contactos contém objetos; o achatamento pode ser mais complexo. A ferramenta trata arrays de objetos como linhas adicionais, mas o comportamento exato depende da forma global do JSON. O JSON deve ser “table‑shaped” — tipicamente um array de objetos ou um array de arrays.

Se o JSON for um array de arrays (por exemplo, [["a", 1], ["b", 2]]), a ferramenta trata cada array interior como uma linha, e a primeira linha pode ou não conter cabeçalhos (não há cabeçalhos a partir de chaves, pois não há objetos). Nesse caso, as colunas são indexadas numericamente (coluna 0, coluna 1, etc.) na saída.

Se o JSON for um único objeto (não um array), a conversão falhará com a mensagem “This JSON is invalid or not table‑shaped”. O mesmo acontece se o array de topo estiver vazio, o que gera “This file has no table rows”.

Tipos de dados: do JSON para o XLSX

O JSON suporta os seguintes tipos primitivos: string, número (inteiro ou decimal, representado como número IEEE 754), booleano (true/false), nulo (null). O XLSX, por seu lado, representa números como valores de vírgula flutuante de 64 bits (IEEE 754), booleanos como valores lógicos (TRUE/FALSE), e texto como cadeias. Nulos em JSON são convertidos para células vazias no Excel (não para a cadeia “null”). Isto é diferente do tratamento em CSV, onde null seria escrito como texto literal a menos que fosse omitido.

A preservação dos tipos é uma vantagem clara sobre CSV. Por exemplo, um valor JSON 3.14 é escrito no XLSX como número, não como string “3.14”. Um booleano true aparece na célula como VERDADEIRO (ou TRUE, dependendo da localidade do Excel) e pode ser usado em fórmulas. No entanto, a ferramenta não escreve fórmulas; escreve apenas o valor constante.

Há uma limitação importante: o Excel (e o formato XLSX) não possui um tipo nativo para datas no sentido de um tipo de dados independente sem formatação. Datas são números de série com formatação de data. O JSON não tem um tipo data; qualquer representação de data no JSON é uma string. Portanto, a ferramenta não converte automaticamente strings de data em números de série do Excel; a string é preservada como texto. O utilizador pode depois aplicar formatação de data manualmente no Excel se necessário.

Regras e limitações importantes

A ferramenta impõe várias restrições conhecidas do lado do cliente. O ficheiro JSON deve ter um tamanho inferior a 8 MB. Após a conversão, o número de linhas e de colunas também é limitado: no máximo 10.000 linhas e 200 colunas. Se o resultado exceder esses limites, surgem mensagens como “This table has more than ‹max› rows” ou “This table has more than ‹max› columns”.

Se a conversão demorar mais de 12 segundos — por exemplo, com ficheiros muito grandes ou estruturas muito profundas — a ferramenta cancela e mostra “This conversion is taking too long. Try a smaller file.”. Também é possível o utilizador cancelar manualmente, o que produz “Conversion cancelled.”.

A ferramenta apenas produz uma única folha de cálculo. Não são geradas folhas múltiplas, mesmo que o JSON contenha vários arrays independentes. Toda a informação é achatada para uma única tabela. Isto significa que estruturas com arrays aninhados profundamente podem não ser representáveis de forma útil; a regra de achatamento com caminhos de pontos gera colunas com nomes longos (ex.: nivel1.nivel2.nivel3.propriedade), que podem tornar a tabela difícil de ler.

Outro erro possível é “Choose a CSV, JSON or XLSX file.” se o utilizador tentar carregar um formato não suportado.

Para quem é esta ferramenta

Destina-se a quem trabalha com dados hierárquicos em JSON — por exemplo, respostas de APIs, ficheiros de configuração, exportações de bases de dados NoSQL — e precisa de os analisar ou partilhar com pessoas que usam Excel. Um analista de dados que não queira escrever código para achatamento manual pode usar esta página para obter rapidamente uma tabela plana. A conversão preserva tipos numéricos e booleanos, evitando a perda de informação que ocorreria numa exportação para CSV.

Também é útil para equipas que recebem dados estruturados e precisam de colaborar com colegas que só trabalham com folhas de cálculo. Como o processamento é local, não há questões de privacidade de dados — o ficheiro nunca sai do computador do utilizador. Isto é relevante para dados sensíveis ou sob restrições de conformidade (RGPD, por exemplo).

Perguntas frequentes (FAQ)

O que significa “table‑shaped” em JSON?
Significa que o JSON de topo é um array, e cada elemento desse array é ou um objeto (com as mesmas chaves) ou um array. Um único objeto também é aceite – converte para uma tabela de uma linha.

Posso converter um JSON com arrays aninhados em profundidade?
Sim, mas o resultado será achatado com nomes de coluna como raiz.filho.neto.propriedade. Se houver arrays de objetos dentro de objetos, o achatamento pode repetir dados. O ideal é que o JSON tenha uma estrutura homogénea.

A ferramenta preserva fórmulas do Excel?
Não. O JSON não contém fórmulas; a ferramenta escreve apenas dados estáticos. Se precisar de fórmulas, deve adicioná-las depois no Excel.

O ficheiro XLSX gerado pode ser aberto em versões antigas do Excel?
Sim, o formato XLSX é suportado desde o Excel 2007. Versões anteriores (Excel 97-2003) requerem o formato.xls, que não é gerado por esta ferramenta.

Porque é que a minha data em JSON aparece como texto no Excel?
O JSON não possui um tipo data. Qualquer representação de data (ex.: “2025-03-18”) é uma string. A ferramenta não a converte automaticamente para número de série do Excel. Pode usar a funcionalidade “Texto para colunas” ou formatar a célula como data no Excel.

O que acontece se o JSON tiver valores nulos?
Valores null no JSON são convertidos em células vazias no XLSX. Não são escritos como a string “null”. Isto é consistente com o comportamento esperado numa folha de cálculo.