Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
Aqui você converte NDJSON para XLSX 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.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
NDJSON para XLSX
Esta é a única conversão de arquivo delimitado por linha neste site voltada a um ser humano. Toda outra saída — CSV para um carregador, SQL para um banco de dados, Parquet para um motor de consulta — presume software do outro lado. Uma planilha presume alguém que vai abrir, alargar uma coluna e ordenar por data.
Se o arquivo vai para um pipeline, esta é a página errada — CSV ou Parquet é a certa. Se vai para um colega, um cliente ou um time financeiro, uma planilha evita a conversa que vem depois de um arquivo de texto: como abro isso, por que os números de referência vieram errados, qual é qual coluna.
Um arquivo delimitado não tem tipo algum, então o Excel infere um por coluna ao abrir. Essa inferência é onde o dano conhecido acontece: zero à esquerda some de código de conta e produto, qualquer coisa com cara de data vira data, e identificadores longos perdem os últimos dígitos por ponto flutuante.
Os registros num arquivo NDJSON já carregam o próprio tipo — uma quantidade é número, um sinalizador é booleano, um código exportado como string continua string. Escrever isso numa planilha preserva essa distinção no próprio arquivo, então nada é adivinhado ao abrir, e um código 00714 chega como 00714.
Um campo cujo valor é um objeto vira uma coluna por folha, com o caminho como cabeçalho: um objeto usuário aninhado com um nome chega como coluna chamada user.name. Arrays achatam por posição, então uma lista tags de a e b vira tags.0 e tags.1.
A consequência é largura, não perda — e largura é problema próprio quando o destinatário é uma pessoa. Um registro de evento com bloco de requisição, bloco de usuário e objeto de contexto pode chegar a trinta colunas a partir de seis campos.
A pasta de trabalho tem uma única planilha, porque um arquivo separado por linha é um fluxo único de registros sem divisões internas para mapear em abas. O nome vem do nome do arquivo sem a extensão, cortado em 31 caracteres — o limite que um nome de planilha tem.
Se o extrato de fato tem vários tipos de registro, várias pastas de trabalho ou várias conversões de arquivos filtrados produzem um resultado bem mais utilizável do que uma única planilha com uma coluna discriminadora.
Cada linha na origem é independente, e nada exige que a segunda tenha as chaves da primeira. A conversão reúne toda chave vista em qualquer lugar do arquivo e dá uma coluna para cada uma, deixando célula vazia onde uma linha não tem valor para aquele campo.
Nada é descartado, e um arquivo misturando três tipos de evento produz uma planilha onde cada linha usa um terço das colunas. Para quem recebe, isso lê como uma exportação quebrada mesmo sendo fiel. Filtrar a origem para um tipo de evento antes de converter costuma valer o passo extra.
Uma linha vira uma linha, então a contagem de linhas é a contagem de linhas do arquivo menos linhas em branco. Isso é conhecível antes de converter: `wc -l`, ou o número de linha no rodapé de um editor.
Vale conferir contra o que uma planilha aguenta com conforto: algumas milhares de linhas abre instantaneamente; algumas centenas de milhares abre devagar e produz um arquivo que muitos sistemas de e-mail recusam. Passado isso, agregar antes de converter é a resposta certa.
Duas checagens levam um minuto juntas. Primeiro, conte as colunas: uma planilha muito mais larga que a lista de campos indica um bloco aninhado ou array achatado, e vale decidir se o destinatário precisa dessas colunas. Segundo, olhe as colunas de identificador e data e confirme que leem como esperado.
E leia o que de fato está lá dentro. Um extrato separado por linha é saída de máquina, e costuma conter todo campo que o sistema emite — identificador interno, sinalizador, referência de rastreamento, ocasionalmente um e-mail que ninguém esperava.
Valores são escritos como os registros os guardavam, sem arredondamento, reformatação ou localização aplicada. Um preço de 12,5 é o número 12,5 na célula, exibido conforme o Excel do destinatário estiver configurado, e um timestamp exportado como string ISO continua string em vez de virar data serial do Excel.
Essa última é um limite deliberado: um timestamp ISO é texto em JSON, e transformá-lo em data do Excel exigiria adivinhar um fuso horário. Se o destinatário precisa de datas ordenáveis, uma fórmula ou etapa de texto para colunas na planilha é a rota confiável.
As duas metades rodam nesta aba: o arquivo é lido linha por linha e a planilha é montada por uma biblioteca carregada sob demanda. Nada é enviado, não há conta nem fila, e o limite gratuito aceita até 100 MB com a memória como teto real.
Para este par a propriedade de privacidade é mais que um argumento de marketing, porque o extrato por definição está prestes a ser compartilhado. Converter num serviço de terceiros significa que o dado chega a dois destinatários em vez de um.
Mande um CSV quando o destinatário é um sistema, ou quando a planilha saiu larga demais para ler e um arquivo delimitado vai para um script de qualquer forma. Mande Parquet quando o destino é um motor de consulta. Mande o próprio NDJSON quando o destinatário é um engenheiro, porque é a única versão que ainda tem a estrutura.
A planilha é a resposta certa para uma situação bem específica e comum: uma pessoa que precisa olhar esses dados hoje, sem instalar nada, e que vai julgar a exportação pelo fato de as colunas fazerem sentido de relance.
| NDJSON | XLSX | |
|---|---|---|
| Nome completo | Newline-Delimited JSON | Pasta de trabalho do Excel |
| Extensão do arquivo | .ndjson, .jsonl | .xlsx |
| Tipo de mídia | application/x-ndjson | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| Publicado pela primeira vez | 2013 | 2007 |
| Publicado por | — | Microsoft |
| Especificação | — | ECMA-376 |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | JSON, CSV | CSV, ODS, Parquet |
Os programas de sempre não se cruzam: NDJSON abre em jq e pandas, e XLSX em Microsoft Excel, LibreOffice Calc e Google Sheets, então quem receber o resultado precisa de algum do segundo grupo.
Os dois miram trabalhos diferentes: NDJSON em mover dados entre programas e a transmissão, XLSX em a edição. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.
XLSX vem da Microsoft é de 2007, descrito em ECMA-376. Microsoft Excel, LibreOffice Calc e Google Sheets leem o formato.
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.
É. 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.
NDJSON e XLSX 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. Objetos aninhados são achatados em colunas. Dados muito aninhados perdem a forma.
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 Excel Workbook.