Pular para o conteúdo principal

Importar JSON no Google Sheets

Converta o JSON em CSV no seu navegador e use Arquivo → Importar → Fazer upload do Google Sheets, ajustando o separador para corresponder. O Sheets não tem importador de JSON, então CSV é o caminho prático; as chaves aninhadas chegam como caminhos de coluna como customer.name, e o conjunto de colunas é a união de todos os registros, não apenas as chaves do primeiro.

Só local
Só quer a ferramenta? Abra Converter JSON em CSVTransforma registros em planilha, mesmo aninhadosAbrir ferramenta

Importar JSON no Google Sheets: explicação

O Google Sheets não tem importador de JSON. Não existe caixa de diálogo que pegue uma resposta de API e a organize em uma grade, e o caminho do Apps Script — UrlFetchApp, JSON.parse, setValues — é uma resposta real que a maioria das pessoas não precisaria escrever. CSV é o formato de intercâmbio que o Sheets aceita, o que faz da etapa de conversão o trabalho inteiro.

A conversão em si é a metade fácil, e o conversor de JSON para CSV faz isso sem envio. A metade que dá errado é a importação, e ela dá errado de formas específicas do Sheets, não compartilhadas com o Excel: o Sheets adivinha o separador pela primeira linha em vez de perguntar, aplica a própria coerção de tipos na entrada e transforma com toda a vontade uma coluna de códigos de produto em números, derrubando os zeros à esquerda antes que você possa dizer algo.

Esta página é a receita para levar uma exportação JSON a uma grade do Sheets sem nada disso. O que o conversor produz, qual configuração de importação usar, como impedir a coerção de tipos e os dois tetos rígidos que você pode atingir numa conta gratuita. Tudo roda no seu navegador — uma exportação JSON costuma ter registros reais sobre pessoas reais, e não precisa de um desvio por um servidor para virar planilha.

A conversão acontece no conversor de JSON para CSV — cole o JSON, escolha um separador e copie ou baixe o resultado.

Se o destino é o Excel e não o Sheets, siga o caminho do Excel em vez disso: uma pasta de trabalho de verdade mantém os números como números nas células e dispensa por completo a caixa de diálogo de importação de CSV.

Por que o Sheets não importa JSON e o que usar no lugar

O Google Sheets consegue ler três coisas diretamente: CSV, TSV e uma grade colada. Ele pode buscar um CSV remoto com IMPORTDATA, e a URL de um Google Sheets publicado é em si um endpoint de CSV — mas não existe caminho nativo de um documento JSON para um intervalo de células. A resposta oficial é Apps Script, e para algo pontual é mais trabalho do que a tarefa merece.

Então o caminho é CSV. Converte primeiro, importa depois, e tudo leva cerca de um minuto. A consequência importante é que cada limitação do CSV vira uma limitação do Sheets: uma célula não distingue a string 22201 do número 22201, e não distingue uma célula vazia de um campo ausente no registro. Essas duas distinções existem no seu JSON e não sobrevivem à viagem — o que vale saber antes de apagar o original.

A caixa de diálogo de importação, campo por campo

Arquivo → Importar → Fazer upload e escolha o arquivo. A caixa de diálogo que aparece decide o resultado, e dois controles dela fazem diferença.

O menu suspenso do separador vem com “Detectar” como padrão, que olha a primeira linha e adivinha. Esse palpite acerta o bastante para ser confiável e erra o bastante para valer a pena sobrepor: escolha explicitamente “Vírgula” ou “Ponto e vírgula”, conforme o que o conversor emitiu. Se o arquivo abrir com tudo na coluna A, o palpite errou — importe de novo em vez de tentar dividir a coluna depois.

A opção “Converter texto em números, datas e fórmulas” é a que causa o dano silencioso. Deixada ligada, o Sheets aplica as próprias heurísticas: um código de produto vira número e perde os zeros à esquerda, uma string de versão como 1.10 vira data, um ID longo vai para notação científica. Desligue-a para importar cada valor como texto, exatamente como escrito. Você sempre pode converter uma coluna de propósito depois; não dá para recuperar um zero à esquerda removido na importação.

Levando JSON aninhado para colunas planas

O conversor achata objetos aninhados em caminhos com pontos e arrays em caminhos com colchetes, de modo que {"customer":{"name":"Ada"}} vira uma coluna chamada customer.name e um array tags vira tags[0], tags[1]. As duas notações são deliberadamente diferentes para que o nome de uma coluna nunca seja ambíguo quanto à origem, e para que uma ida e volta pelo CSV de volta ao JSON reconstrua o aninhamento.

O conjunto de colunas é a união dos campos de todos os registros na ordem em que aparecem pela primeira vez. Isso importa mais no Sheets do que numa planilha local, porque a importação é uma operação de uma vez só: um campo que só aparece no quadragésimo registro ainda ganha a própria coluna, enquanto um conversor que lê o cabeçalho do primeiro registro o perde em silêncio e você descobre semanas depois, quando um filtro não retorna nada.

JSONColunaObservações
{"customer":{"name":"Ada"}}customer.nameMembros de objetos viram caminhos com pontos
{"tags":["a","b"]}tags[0], tags[1]Cada elemento do array ganha uma coluna
{"vip":true}vipImportado como TRUE, não como o texto “true”
{"note":null}noteUma célula vazia — indistinguível de ausente

Os dois tetos que você pode atingir de verdade

Uma conta Google gratuita permite 10,000,000 de células numa planilha, e são 10,000,000 de valores, não de linhas. Uma exportação de 50 colunas, portanto, se esgota em 200,000 linhas, e uma importação que passa do teto falha no meio do caminho com uma mensagem sobre o arquivo, não sobre o limite. Se a sua exportação for maior, divida por intervalo de datas ou por prefixo de ID e importe as partes em abas separadas.

O outro teto é o tamanho de arquivo da caixa de importação, que é 100 MB. Um CSV de cem mil registros com vinte colunas tem cerca de 20 MB, então este é o menos provável dos dois — mas uma exportação JSON com campos de texto longos pode alcançá-lo. O conversor recusa acima de 8 MB de JSON em vez de travar a aba, então na prática você encontra esse limite primeiro, e ele avisa.

Mantendo a planilha em dia com a origem

Um intervalo importado é um retrato. Se o JSON é uma exportação de algo que muda — uma tabela de pedidos, um CRM, um dump de analytics — a planilha fica desatualizada no momento em que chega, e reimportar à mão toda manhã é exatamente a tarefa maçante que vira uma planilha quebrada em que ninguém confia.

As opções honestas são duas. Se a origem pode publicar CSV por HTTP, o IMPORTDATA o puxa numa programação para uma única célula, e SPLIT mais uma fórmula de matriz o organizam — nenhuma etapa de conversão, ao custo de os dados ficarem públicos para qualquer pessoa com a URL. Caso contrário, mantenha a conversão local e repita-a: a ferramenta aceita um colar, então o ciclo é exportar, colar, baixar, importar, e leva menos de um minuto. O que não vale a pena é ligar um Apps Script a uma chave de API privada para que uma planilha guarde uma credencial que não deveria.

Perguntas frequentes

Meu JSON é enviado quando eu converto?

Não. A conversão é uma chamada de função dentro da aba do seu navegador — não existe rota de API para a qual enviar o documento. Você pode verificar: abra o DevTools, olhe o painel Network, cole um documento e nenhuma requisição o carrega. A Content-Security-Policy da página define connect-src 'self', então o navegador recusaria um envio externo de qualquer forma. Exportações JSON costumam ser registros reais, e é exatamente por isso que a conversão fica local.

Por que meu CSV abre no Sheets com tudo em uma coluna?

O separador do arquivo não corresponde ao que a caixa de importação adivinhou. O Sheets usa “Detectar” como padrão e infere pela primeira linha, então um arquivo delimitado por vírgulas importado com “Ponto e vírgula” selecionado cai inteiro na coluna A. Importe de novo com Arquivo → Importar e defina o separador explicitamente para corresponder ao que o conversor emitiu — vírgula, ponto e vírgula, tabulação ou barra vertical. Dividir a coluna depois com uma fórmula é possível e sempre pior do que importar de novo.

Por que meus códigos de produto perderam os zeros à esquerda?

A opção “Converter texto em números, datas e fórmulas” da caixa de importação, que vem ligada por padrão. O Sheets reinterpreta qualquer coisa com cara de número, então 00123 vira 123 e um ID longo vai para notação científica. Desligue essa opção e cada valor será importado como texto, exatamente como escrito. É a reclamação mais comum sobre importações de CSV no Sheets e, ao contrário do Excel, não há exceção por coluna na caixa — é tudo ou nada.

O Sheets pode importar JSON diretamente?

Não por nenhuma caixa de diálogo nativa. O IMPORTDATA lê CSV e TSV por HTTP, não JSON, e não há opção de importar JSON em Arquivo → Importar. O Apps Script consegue — UrlFetchApp para buscar, JSON.parse para ler, setValues para escrever — e para um trabalho recorrente movido por uma API é algo razoável de construir. Para uma conversão pontual, é consideravelmente mais trabalho do que converter para CSV e importar isso.

Quantas linhas posso importar?

Dez milhões de células numa conta Google gratuita, e é uma contagem de células, não de linhas: uma exportação de cinquenta colunas, portanto, para em torno de 200,000 linhas. Passar disso faz a importação falhar no meio. Se a sua exportação for maior, divida em partes e importe cada uma na própria aba, ou use a saída do conversor, sem noção de intervalo, como fonte de um script em vez de uma grade.

A conversão lida com objetos e arrays aninhados?

Sim. Objetos viram caminhos de coluna com pontos — customer.name — e arrays viram caminhos com colchetes — tags[0], tags[1]. O conjunto de colunas é a união de todos os registros na ordem da primeira aparição, então campos opcionais ganham uma coluna com células vazias no resto, em vez de serem descartados. O modo Explode faz a ida e volta pelo conversor de CSV para JSON; o modo Join comprime um array de escalares numa única célula e perde informação de propósito.