Converter XLSX para JSON

Aqui você converte XLSX para JSON de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Reconstruído JSON funciona de um jeito diferente de XLSX. Não é a degradação gradual de um codec com perda: o que JSON consegue expressar é reproduzido fielmente, e o que não tem equivalente ali não sobrevive de jeito nenhum.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.
  • Vale saber Só a primeira planilha é lida, e dela só os valores. Fórmulas, formatação, largura das colunas e todas as planilhas seguintes ficam de fora.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

A planilha é a interface que ninguém desenhou

Esta conversão existe por causa de um padrão que se repete em toda organização: a versão oficial de alguma coisa — uma tabela de preço, um catálogo de produto, uma tabela de tradução, um horário de funcionamento, um mapeamento de código para nome — mora numa planilha mantida por alguém que não é programador, e precisa chegar a um programa que espera dado.

É um arranjo perfeitamente razoável. Uma planilha é uma boa interface de edição, o pessoal de negócio já sabe usar, e construir uma ferramenta administrativa pequena para substituir ela raramente vale o esforço. O que falta é uma conversão confiável na fronteira, e é esse o trabalho inteiro aqui.

Uma grade vira um vetor de objetos

O mapeamento é o óbvio. A primeira linha é tratada como cabeçalho e fornece o nome das chaves; toda linha depois dela vira um objeto; toda célula vira um valor nesse objeto. O resultado é um vetor de registros, o formato que um programa consumidor quase sempre quer.

Vale pensar no cabeçalho de propósito, porque essas células viram nome de chave no seu código. Curto, minúsculo, sem espaço e sem pontuação produz chaves agradáveis de trabalhar; um cabeçalho como «Preço unitário (R$, sem imposto)» produz algo que ninguém quer digitar duas vezes.

Data é a primeira coisa que dá errado

Uma planilha não guarda data como data. Guarda um número contando dias a partir de uma origem, e a formatação da célula é o que faz 45678 aparecer como uma data na tela. Converter devolve o que de fato está no arquivo, que é o número.

As duas formas de contornar isso são deliberadas. Formate a coluna como texto na planilha e digite data ISO nela, o que torna o arquivo autodescritivo e sobrevive a qualquer conversão. Ou transforme os valores depois da conversão, aplicando a aritmética de contagem de dias você mesmo. As duas funcionam; descobrir o problema depois que o dado chega em produção não funciona.

Zero à esquerda e identificador longo já se perderam antes de você começar

Um CEP, um código de produto, um código bancário ou um identificador nacional guardado numa célula formatada como número já perdeu os zeros à esquerda — o Excel fez isso quando o valor foi digitado ou importado, e o arquivo contém um número.

O mesmo vale para identificador acima de quinze dígitos, que perde os últimos dígitos para ponto flutuante dentro da própria planilha. Nenhum conversor recupera nenhum dos dois, porque a informação não está no arquivo. A correção fica a montante: essas colunas precisam ser formatadas como texto na planilha, e vale avisar quem mantém a planilha uma vez em vez de consertar a saída todo mês.

O que uma planilha tem e o JSON não

Fórmula, e você recebe o resultado dela — que é o que se quer, já que um programa não tem o que fazer com uma fórmula. Formatação, cor, regra condicional e largura de coluna, nada disso é dado. Gráfico, comentário e célula mesclada, sem equivalente nenhum.

Célula mesclada é a que vale observar. Um cabeçalho mesclado abrangendo três colunas é um recurso de apresentação, e produz um objeto com uma chave preenchida e duas vazias — um registro de aparência estranha vindo de uma planilha de aparência perfeitamente sensata. Cabeçalho plano, uma célula por coluna, é o que torna esta conversão sem graça, e sem graça é o objetivo.

Onde isso se encaixa num build

O arranjo comum é manter a planilha como origem editável, converter para JSON como uma etapa, e versionar o JSON junto do código. O dado fica então revisável num pull request, versionado, e disponível no momento do build sem nenhuma dependência de tempo de execução num arquivo que alguém pode mover.

Dois hábitos fazem isso funcionar ao longo do tempo. Converta sempre do mesmo jeito, para uma diferença mostrar mudança real em vez de reordenação. E valide o resultado contra um esquema antes de versionar, para uma coluna renomeada por um colega bem-intencionado falhar uma checagem em vez de produzir objetos com um campo faltando em silêncio.

Quando CSV é o alvo melhor

Se o destino é uma importação de banco de dados, uma ferramenta de análise ou um pipeline de dados, o CSV costuma ser o intermediário melhor: transmite em fluxo, todo sistema lê, e não impõe uma estrutura de aninhamento a um dado que não tem nenhuma.

O JSON ganha o lugar dele quando o dado vai para código de aplicação — um front-end, um arquivo de configuração, um fixture de API — onde um vetor de objetos é o que a linguagem quer e a análise é uma linha. Escolha pelo que lê o arquivo, não por qual formato é mais moderno.

O arquivo fica na sua máquina

A conversão roda na aba do navegador, no seu próprio processador, então nada é enviado e nenhum servidor guarda cópia. Não há conta, não há fila, não há cota diária; o limite de tamanho é 100 MB por arquivo, cem arquivos por lote.

Isso não é incidental aqui. As planilhas que as pessoas convertem são internas: preço, margem, lista de cliente, registro de funcionário, catálogo ainda não lançado. Não enviar elas a lugar nenhum é a forma mais simples de não precisar confiar isso a ninguém.

Como converter XLSX para JSON

  1. Solte o seu arquivo XLSX nesta página, ou clique para escolher um.
  2. Escolha JSON como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo JSON pronto.

XLSX ou JSON: o que muda

XLSX comparado com JSON
XLSXJSON
Nome completoPasta de trabalho do ExcelJavaScript Object Notation
Extensão do arquivo.xlsx.json
Tipo de mídiaapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/json
Publicado pela primeira vez20072001
Publicado porMicrosoft
EspecificaçãoECMA-376RFC 8259
LicençaPadrão abertoPadrão aberto
Situação hojeAtualAtual
Abre no navegadorNenhum navegadorTodos os navegadores
Considerado no lugarCSV, ODS, ParquetXML, YAML, NDJSON

Abrir o resultado

JSON abre em qualquer navegador atual. XLSX alcança ainda menos navegadores. Se o arquivo vai para uma página web ou um formulário, esse costuma ser todo o motivo da conversão.

Os programas de sempre não se cruzam: XLSX abre em Microsoft Excel, LibreOffice Calc e Google Sheets, e JSON em Visual Studio Code, jq e Postman, então quem receber o resultado precisa de algum do segundo grupo.

Para que serve cada formato

Os dois miram trabalhos diferentes: XLSX em a edição, JSON em mover dados entre programas e a web. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.

XLSX é o formato da Microsoft, publicado em 2007. Está descrito em ECMA-376, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.

JSON e de 2001, descrito em RFC 8259. Visual Studio Code, jq e Postman leem o formato.

De XLSX para JSON: perguntas frequentes

Meu arquivo XLSX é enviado para algum lugar?

Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo. O motor deste par específico é SheetJS, um leitor e gravador de planilhas em JavaScript; seu navegador baixa isso uma vez e guarda.

Converter XLSX para JSON é grátis?

É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez. SheetJS é baixado para a sua máquina e roda lá, e por isso não há contador.

Perde qualidade ao converter XLSX para JSON?

XLSX e JSON descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Só a primeira planilha é lida, e dela só os valores. Fórmulas, formatação, largura das colunas e todas as planilhas seguintes ficam de fora.

Preciso instalar alguma coisa para abrir um arquivo JSON?

Para a conversão, não: ela acontece no navegador que você já tem aberto. Para abrir o resultado você precisa depois do programa com que o seu aparelho normalmente exibe JavaScript Object Notation.

Mais sobre esses formatos