NDJSON naar XLSX omzetten

Hier zet je NDJSON naar XLSX om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. De omzetting gebeurt binnen je eigen browser, dus het bestand wordt nooit geüpload. Het werkt hetzelfde op Windows, macOS en Linux als op iPhone en Android, en het blijft werken als je de verbinding verbreekt.

  • Waar het draait In je browser. Het bestand wordt nooit geüpload.
  • Opnieuw opgebouwd XLSX werkt anders dan NDJSON. Het is dus niet het geleidelijke kwaliteitsverlies van een lossy codec: wat XLSX kan uitdrukken wordt getrouw weergegeven, en wat daar geen equivalent heeft blijft helemaal weg.
  • Maximale grootte Tot 100 MB per bestand, gratis en zonder account.
  • Goed om te weten Geneste objecten worden platgeslagen tot kolommen. Diep geneste gegevens verliezen hun vorm.

Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.

De ontvanger is een mens, en dat bepaalt het formaat

Dit is de enige omzetting van een regelgescheiden bestand op deze site die op een mens gericht is. Elk ander doel — CSV voor een loader, SQL voor een database, Parquet voor een query-engine — gaat uit van software aan de andere kant. Een werkmap gaat uit van iemand die het opent, een kolom breder maakt en op datum sorteert.

Als het bestand een pijplijn ingaat, is dit de verkeerde pagina en zijn CSV of Parquet de juiste. Gaat het naar een collega, een klant of een financiële afdeling, dan bespaart een werkmap het gesprek dat op een tekstbestand volgt: hoe open ik dit, waarom kloppen de referentienummers niet, welke kolom is welke.

Vastgelegde celtypes zijn wat je hier eigenlijk koopt

Een gescheiden bestand heeft helemaal geen types, dus Excel leidt er bij het openen één per kolom af. Die afleiding is waar de bekende schade ontstaat: voorloopnullen verdwijnen uit rekening- en productcodes, alles wat op een datum lijkt wordt een datum, en identificatienummers voorbij vijftien cijfers raken hun laatste cijfers kwijt aan drijvendekommaproblemen.

De records in een NDJSON-bestand dragen hun types al — een hoeveelheid is een getal, een vlag is een boolean, een referentienummer geëxporteerd als tekst is tekst. Die door te schrijven naar een werkmap bewaart dat onderscheid in het bestand zelf, dus er wordt niets geraden bij het openen en een code van 00714 komt aan als 00714.

Geneste velden worden kolommen met een punt

Een veld waarvan de waarde een object is, wordt één kolom per blad, met het pad als kop: een genest user-object met een name-veld komt aan als user.name, met het type dat het in het record had. Arrays worden op positie plat geslagen, dus een tags-lijst van a en b wordt tags.0 en tags.1, en de koppen zijn de vereniging over het hele bestand — een lijst die af en toe lang is voegt kolommen toe voor elke positie die hij ooit bereikt.

Het gevolg is breedte, geen verlies, en breedte is een eigen probleem als de ontvanger een mens is. Een gebeurtenisrecord met een request-blok, een user-blok en een context-object kan van zes velden naar dertig kolommen groeien, wat niemand leest. Waar de geneste blokken niet het punt zijn, geeft ze eerst met jq strippen een smallere werkmap.

Eén blad, genoemd naar het bestand

De werkmap heeft één enkel blad, omdat een regelgescheiden bestand één stroom records is zonder interne verdelingen om op tabbladen te zetten. De naam komt uit de bestandsnaam zonder extensie, afgekapt tot 31 tekens, de grens die een bladnaam heeft.

Als de export echt meerdere soorten records bevat — het gemengde gebeurtenislog hieronder — leveren meerdere werkmappen of meerdere omzettingen van gefilterde bestanden een veel bruikbaarder resultaat op dan één blad met een onderscheidende kolom.

Regels met verschillende velden maken een schaars blad

Elke regel in de bron staat op zichzelf en niets vereist dat de tweede dezelfde sleutels heeft als de eerste. De omzetting verzamelt elke sleutel die ergens in het bestand voorkomt en geeft elk een kolom, met lege cellen waar een regel niets heeft.

Er gaat niets verloren, en een bestand met drie gebeurtenistypen door elkaar levert een blad op waar elke rij een derde van de kolommen gebruikt. Voor iemand die dat ontvangt, oogt het als een kapotte export terwijl het een getrouwe is. Het bronbestand vooraf filteren tot één gebeurtenistype is de extra stap waard.

Aantal rijen, en waar een werkmap prettig mee omgaat

Eén regel wordt één rij, dus het aantal rijen is het regelaantal minus lege regels. Dat is vooraf te weten: wc -l, of het regelnummer onderaan een editor.

Het is de moeite waard dat te toetsen aan wat een spreadsheet redelijk aankan. Een werkmap van enkele duizenden rijen opent meteen en werkt prettig; enkele honderdduizenden rijen opent traag, filtert traag en levert een bestand op dat de meeste mailsystemen als bijlage weigeren. Voorbij die omvang is samenvatten vóór het omzetten het antwoord.

Wat je bekijkt voordat het bestand naar een e-mail gaat

Twee controles kosten samen een minuut. Eerst het aantal kolommen tellen: een blad veel breder dan de veldlijst betekent een genest blok of een uitgevouwen array, en het is de moeite waard te beslissen of de ontvanger die kolommen nodig heeft. Ten tweede de identificatie- en datumkolommen bekijken en bevestigen dat ze lezen zoals verwacht.

En lees wat er echt in staat. Een regelgescheiden export is machineoutput en bevat meestal elk veld dat het systeem uitstuurt — interne identificatienummers, vlaggen, traceerreferenties, af en toe een e-mailadres dat niemand verwachtte. Een spreadsheet maakt alles zichtbaar op een manier die een logbestand niet doet.

Waar de getallen vandaan komen, en waar ze naartoe gaan

Waarden worden geschreven zoals de records ze hielden, zonder afronding, herformattering of localisatie. Een prijs van 12,5 is het getal 12,5 in de cel, weergegeven volgens wat de Excel van de ontvanger ook staat ingesteld, en een tijdstempel geëxporteerd als ISO-string blijft een string in plaats van een datumserie te worden.

Dat laatste is een bewuste keuze en geen omissie: een ISO-tijdstempel is tekst in JSON, en er een Excel-datum van maken zou een tijdzone gokken betekenen. Als de ontvanger sorteerbare data nodig heeft, is een formule of een tekst-naar-kolommen-stap in de werkmap de betrouwbare route.

De werkmap wordt op je eigen machine geschreven

Beide helften draaien in dit browsertabblad: het bestand wordt regel voor regel geparst en de werkmap wordt samengesteld door een op aanvraag geladen bibliotheek. Niets wordt geüpload, er is geen account of wachtrij, en de gratis laag accepteert tot 100 MB met geheugen als echte grens.

Voor dit paar is de privacy-eigenschap meer dan een gespreksonderwerp, want de export staat per definitie op het punt om gedeeld te worden. Die via een externe dienst omzetten betekent dat de data twee ontvangers bereikt in plaats van één. Lokaal doen houdt de lijst beperkt tot degene aan wie je het daadwerkelijk stuurt.

Wanneer CSV, Parquet of het origineel de betere levering is

Stuur een CSV als de ontvanger een systeem is, of als het blad te breed werd om te lezen en een gescheiden bestand toch een script ingaat. Stuur Parquet als de bestemming een query-engine is en dezelfde records vaak gelezen zullen worden. Stuur de NDJSON zelf als de ontvanger een engineer is, want dat is de enige versie die de structuur nog heeft.

De werkmap is het juiste antwoord voor precies één situatie, en het is een veelvoorkomende: een mens die vandaag naar deze data moet kijken, zonder iets te installeren, en die de export beoordeelt op of de kolommen op het eerste gezicht kloppen.

Zo zet je NDJSON naar XLSX om

  1. Sleep je NDJSON-bestand op deze pagina, of klik om er een te kiezen.
  2. Kies XLSX als doel. De omzetting gebeurt in je browser en het bestand wordt niet geüpload.
  3. Download het klare XLSX-bestand.

NDJSON of XLSX: wat er verandert

NDJSON vergeleken met XLSX
NDJSONXLSX
Volledige naamNewline-Delimited JSONExcel-werkmap
Bestandsextensie.ndjson, .jsonl.xlsx
Mediatypeapplication/x-ndjsonapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Voor het eerst gepubliceerd20132007
Uitgegeven doorMicrosoft
SpecificatieECMA-376
LicentieOpen standaardOpen standaard
Stand van zakenActueelActueel
Opent in een browserGeen browserGeen browser
In plaats daarvan overwogenJSON, CSVCSV, ODS, Parquet

Het resultaat openen

De gebruikelijke programma's overlappen niet: NDJSON open je in jq en pandas, XLSX in Microsoft Excel, LibreOffice Calc en Google Sheets — wie het resultaat krijgt, heeft dus iets uit de tweede rij nodig.

Waarvoor elk formaat bedoeld is

De twee mikken op ander werk: NDJSON op gegevens tussen programma’s verplaatsen en streamen, XLSX op bewerken. Dat is het afwegen waard, want de reden dat het ene bestaat is meestal de reden dat het andere onhandig is.

XLSX komt van Microsoft en stamt uit 2007, vastgelegd in ECMA-376. Microsoft Excel, LibreOffice Calc en Google Sheets lezen het formaat.

Van NDJSON naar XLSX: veelgestelde vragen

Wordt mijn NDJSON-bestand ergens heen geüpload?

Nee. Deze omzetting gebeurt volledig in je browser, dus het bestand verlaat je apparaat niet. Je kunt het zelf nagaan: open het netwerktabblad van de ontwikkelaarshulpmiddelen en zet iets om. Je ziet de pagina zelf en de verzoeken voor statistiek en advertenties waarmee deze dienst betaald wordt, en geen enkel verzoek dat je bestand meeneemt. De motor achter juist dit paar is SheetJS, een lezer en schrijver van spreadsheets in JavaScript; je browser haalt die één keer op en bewaart hem.

Is NDJSON naar XLSX omzetten gratis?

Ja. Geen account, geen watermerk en geen dagtegoed dat opraakt: het draait op je eigen machine, dus je mag zo vaak terugkomen als je wilt. De browser verwerkt bestanden tot 100 MB, 100 tegelijk. SheetJS wordt naar je eigen machine gehaald en draait daar, en daarom staat er geen teller op.

Gaat er kwaliteit verloren bij het omzetten van NDJSON naar XLSX?

NDJSON en XLSX beschrijven de inhoud op fundamenteel andere manieren. De omzetting is daarom een reconstructie en geen kopie: getrouw, maar niet byte voor byte identiek. Geneste objecten worden platgeslagen tot kolommen. Diep geneste gegevens verliezen hun vorm.

Moet ik iets installeren om een XLSX-bestand te openen?

Voor de omzetting niet: die gebeurt in de browser die je al open hebt staan. Om het resultaat te openen heb je daarna het programma nodig waarmee je apparaat Excel Workbook normaal weergeeft.

Meer over deze formaten