Converter JSON em Excel
Entregue aos colegas da área de negócios uma planilha em vez de um arquivo de dados: os nomes dos campos viram a linha de cabeçalho, cada registro vira uma linha e os números ficam guardados como números de verdade, prontos para uma tabela dinâmica. Paga por uso, sem assinatura.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
É a ponte entre o que o sistema exporta e o que as pessoas conseguem ler.
Por que uma planilha em vez de um arquivo de dados
Entregar um arquivo de dados bruto para um colega da área de negócios é um beco sem saída: ele precisa de algo que possa abrir, filtrar e repassar sem perguntar o que é uma chave. A equipe financeira quer uma planilha para montar uma tabela dinâmica, o cliente espera um relatório que abra no programa de planilhas e o responsável pela operação quer um arquivo para anexar ao e-mail. Um CSV pode levar os mesmos valores, mas não conhece células com tipo, então números e textos ficam iguais. Quando o arquivo é para ser aberto e lido, e não processado por outro programa, uma planilha de verdade é o formato que respeita quem recebe.
O que vai para dentro do arquivo
Cada nome presente nos registros vira um título na primeira linha, na ordem em que aparece pela primeira vez, e cada registro ocupa uma linha abaixo. Valores numéricos são guardados como números de verdade, então podem ser somados, ordenados e usados numa tabela dinâmica na hora; verdadeiro e falso viram células de sim ou não, e o resto vira texto. O valor que um registro não tem deixa a célula vazia. O resultado é uma pasta de trabalho legítima, com uma planilha. A ferramenta espera registros planos, então, se algum registro tiver uma seção aninhada, achate os dados antes de converter.
De dados de sistema a planilha que qualquer pessoa abre
Esta conversão fecha esse vão: um array de objetos vira uma tabela em .xlsx, com a primeira linha de cabeçalho e uma linha por registro. Diferente de gerar um CSV, o arquivo Excel nativo não sofre com acento quebrado, separador errado nem zero à esquerda sumindo de CEP e CPF — os males clássicos de abrir CSV no Excel brasileiro.
O que a conversão faz com a estrutura dos dados
Campos simples viram colunas. Campos aninhados são achatados com nome composto (cliente.cidade), para que nenhum dado fique de fora, e listas são tratadas para não estourar a estrutura da tabela. Valores nulos viram células vazias, números continuam números — somáveis na planilha, prontos para fórmula e tabela dinâmica — e textos preservam acentuação do português.
O limite é 25 MB por arquivo de entrada, o suficiente para relatórios com dezenas de milhares de registros.
Perguntas frequentes
É grátis?
Não existe plano, franquia nem surpresa na fatura.
Por que gerar XLSX em vez de CSV?
Porque o Excel abre o XLSX exatamente como ele foi gerado: acentos corretos, colunas no lugar, zeros à esquerda preservados. CSV depende da configuração regional de quem abre — e no Brasil isso costuma terminar em coluna trocada.
Como funciona o pagamento? Aceita Pix?
O pagamento é por uso, em dólares (US$), via PayPal. Ainda não aceitamos Pix — preferimos avisar com franqueza a esconder isso no rodapé.
Vocês guardam os dados que eu envio?
Os dados servem para gerar o arquivo da tarefa e é para isso que são tratados. Os limites técnicos e a política de tratamento estão publicados, o que facilita documentar o uso na sua adequação à LGPD.
Os números ficam guardados como números na planilha?
Sim. Valores numéricos viram células numéricas que podem ser somadas, ordenadas e usadas numa tabela dinâmica, verdadeiro e falso viram células de sim ou não, e o resto é guardado como texto. Não é preciso converter nada à mão depois de abrir o arquivo.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/data/json-to-xlsx \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"rows":[{"producto":"Café","precio":3.5,"stock":12}]}'const res = await fetch("https://api.kit.forhosting.com/data/json-to-xlsx", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"rows": [
{
"producto": "Café",
"precio": 3.5,
"stock": 12
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/json-to-xlsx",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"rows": [
{
"producto": "Café",
"precio": 3.5,
"stock": 12
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/json-to-xlsx", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"rows":[{"producto":"Café","precio":3.5,"stock":12}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"rows":[{"producto":"Café","precio":3.5,"stock":12}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/json-to-xlsx", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"rows": [
{
"producto": "Café",
"precio": 3.5,
"stock": 12
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.json_to_xlsx",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Esta capacidade converte JSON em planilha Excel (.xlsx) de verdade — não um CSV disfarçado. Você envia os dados via API e recebe um arquivo que abre direto no Excel ou no Google Planilhas, com colunas organizadas.
De dados de sistema a planilha que qualquer pessoa abre
Quem programa vive em JSON; quem decide vive em planilha.
Preço e forma de uso
Não há modo grátis no navegador para esta capacidade; o preço publicado é o preço cobrado. Funciona por API, com pagamento por uso: US$ 0,002 por chamada, sem mensalidade e sem valor mínimo. O fluxo é assíncrono — você envia o JSON, recebe o identificador da tarefa e busca o arquivo pronto —, o que permite gerar planilhas grandes dentro de rotinas automáticas: o relatório de toda sexta-feira, a exportação de cada fechamento de mês.
Casos de integração
Relatório semanal para quem não abre JSON
O sistema de pedidos da Distribuidora Horizonte Verde S.A. gera um JSON toda sexta. Uma rotina converte em XLSX e manda por e-mail para a diretoria — que abre no Excel do celular, sem pedir nada ao time técnico.
Exportação para o contador
O app de gestão que a TecnoSul desenvolveu guarda os lançamentos em JSON. Com esta capacidade, o botão "exportar para Excel" virou uma chamada de API: o cliente baixa a planilha e repassa ao contador na hora do imposto de renda.
Conferência humana de dados migrados
Antes de virar a chave de um sistema novo, Rafael Almeida Costa converte o JSON da migração em planilha e distribui para cada área conferir seus registros — muito mais rápido do que revisar arquivo bruto.
Perguntas técnicas
Consigo mandar um JSON com objetos dentro de objetos?
Sim. Os campos internos viram colunas com nome composto, então um pedido com cliente e endereço vira uma única linha com todas as informações.
Qual o limite de tamanho?
25 MB de JSON por chamada — dá para gerar planilhas com dezenas de milhares de linhas.