XLSX naar TSV omzetten

Hier zet je XLSX naar TSV 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 TSV werkt anders dan XLSX. Het is dus niet het geleidelijke kwaliteitsverlies van een lossy codec: wat TSV 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 Alleen het eerste blad wordt gelezen, en daarvan alleen de waarden. Formules, opmaak, kolombreedtes en elk volgend blad blijven achter.

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

Tab wint als de data vol kommas zit

De reden om tab-gescheiden uitvoer te verkiezen is smal en praktisch. Adressen bevatten kommas. Productomschrijvingen bevatten kommas. Getallen genoteerd in de helft van Europa bevatten kommas. In een kommagescheiden bestand moet elk daarvan tussen aanhalingstekens, en elke afnemer van het bestand moet aanhaling correct implementeren om de kolomgrenzen terug te vinden.

Tabs komen zelden in de data voor, dus het scheidingsteken en de inhoud concurreren niet meer. Deze omzetting schrijft een cel met "Widget, klein" precies zo, zonder aanhalingstekens. `cut -f2` vindt het. `awk -F"\t"` vindt het. Er hoeft niets geparst te worden; er hoeft alleen gesplitst te worden.

Het geval van een tab binnen een cel, het geval dat wél bijt

Tabs komen af en toe toch in rekenbladcellen terecht — geplakt, per ongeluk getypt, meegekomen uit een systeemexport. Dan schrijft de omzetting die cel tussen dubbele aanhalingstekens, want het alternatief is een rij die stilletjes een extra kolom krijgt.

Dat is correcte uitvoer en een volwaardige parser handelt het af, maar de shelltools waarvoor dit formaat wordt gekozen doen dat niet: `cut -f` telt tabs en weet niets van aanhalingstekens. Levert een pijplijn misvormde uitvoer op een handvol rijen, dan is dit vaak de oorzaak. Verwijder tabs in het bronblad in plaats van downstream te patchen.

Eén blad, want een TSV is één tabel

Een werkmap kan dertig bladen bevatten. Een tab-gescheiden bestand bevat één tabel met één koprij, en er is geen syntax voor iets anders. De omzetting neemt daarom het eerste blad en laat de rest liggen — het enige gedrag dat niet stilletjes een samengevoegd bestand oplevert dat niemand vroeg.

Is het gewenste blad niet het eerste, verplaats het dan in de werkmap en zet opnieuw om. Heb je meerdere bladen nodig, zet dan meerdere keren om en houd de uitvoer apart — dat is wat een pijplijn toch wil.

Datums komen als getallen terug, en dat is geen fout

Een rekenblad bewaart geen datum. Het bewaart een dagteller en een weergaveformaat, en de kalender die je in de cel ziet, is het formaat dat zijn werk doet. Omzetten leest de waarde, niet het kostuum, dus 1 januari 2024 komt aan als 45292.

De telling begint eind december 1899, wat verklaart waarom de getallen in de veertigduizenden liggen voor iets recents. Reken ze om waar ze naartoe gaan, in plaats van het rekenblad eerst te herformatteren, want een als tekst geschreven datum is een nieuw parseerprobleem in plaats van een rekenprobleem.

Wat de kolommen zijn, en wat een lege cel wordt

De koprij levert de kolomnamen, en de verzameling kolommen is de vereniging van de sleutels gevonden over elke rij in plaats van alleen de eerste. Een blad waar een later blok rijen een extra veld draagt, geeft toch een bestand met dat veld in de koprij.

Lege cellen blijven lege velden in plaats van te verdwijnen, dus elke regel heeft hetzelfde aantal tabs en het bestand blijft rechthoekig. Dat is precies wat een positioneel hulpmiddel nodig heeft.

Voorloopnullen overleven hier, anders dan bij een CSV-rondgang

Een code opgeslagen als tekst in de werkmap komt met zijn nullen intact terug: 007 blijft 007. Dat is de moeite waard om te vermelden, want het tegenovergestelde is zo gewoon — een CSV geopend in Excel en opnieuw opgeslagen maakt zulke kolommen tot getal.

Wat dit niet kan herstellen, is schade die al gebeurd is. Bevat de werkmap zelf al 7 omdat iemand vorige maand achteloos een CSV importeerde, dan bevat de TSV ook 7. Controleer een codekolom in het bronblad voor het omzetten.

Regeleindes, codering en het resultaat ergens plakken

Regels worden gescheiden door een enkele newline in plaats van een carriage-return-paar, en de tekst is UTF-8. Dat is wat een Unix-pijplijn, een Git-diff en de meeste moderne importtools verwachten.

De uitvoer is platte tekst en overleeft dus ook plakken in plaats van uploaden — in een databaseclient, een formulierveld, een chatbericht, een teksteditor. Die route is de moeite waard te onthouden wanneer de bestemming een importscherm heeft dat je niet vertrouwt.

Een tab-gescheiden bestand laden in Postgres of R

Postgres leest deze vorm rechtstreeks met COPY, en het detail om te kennen is wat het met lege velden doet: in zijn tekstformaat is een leeg veld een lege string, geen null — alleen het teken \N betekent null.

R leest het met `read.delim`, dat al tab aanneemt, en pandas met `sep="\t"`. Geef in elk daarvan expliciet het type op voor alles dat een identifier is in plaats van een hoeveelheid.

Hoe groot een werkmap dit aankan, en waar het draait

Het parsen en schrijven gebeuren allebei in je browser, dus er wordt niets geüpload en er is geen wachtrij, geen niveau en geen rijlimiet anders dan het geheugen van je machine. Een werkmap van vijftigduizend rijen over zes kolommen zet in een moment om.

De grens is het hele bestand tegelijk in het geheugen houden, wat tientallen megabytes ruim binnen bereik brengt en honderden op het punt waar een tabblad gaat kraken. Daarboven is een streamende lezer in een script het juiste gereedschap.

Wanneer CSV, NDJSON of SQL het betere doel is

Kies CSV als de bestemming een importscherm is dat het met naam noemt, want een tool die CSV zegt, bedoelt dat vaak letterlijk. Kies NDJSON als de waarden hun type moeten behouden onderweg, want een gescheiden bestand kan het getal 7 niet onderscheiden van de tekst "7".

Kies SQL als de rijen naar een bestaande tabel gaan, en Parquet als ze naar een analyse-engine gaan die ze herhaaldelijk bevraagt. TSV is het juiste antwoord voor één specifiek geval: teksttools die op een teken splitsen, waar dat teken niet in de data mag voorkomen.

Zo zet je XLSX naar TSV om

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

XLSX of TSV: wat er verandert

XLSX vergeleken met TSV
XLSXTSV
Volledige naamExcel-werkmapTab-Separated Values
Bestandsextensie.xlsx.tsv, .tab
Mediatypeapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheettext/tab-separated-values
Voor het eerst gepubliceerd20071993
Uitgegeven doorMicrosoft
SpecificatieECMA-376IANA text/tab-separated-values
LicentieOpen standaardOpen standaard
Stand van zakenActueelActueel
Opent in een browserGeen browserGeen browser
In plaats daarvan overwogenCSV, ODS, ParquetCSV, JSON

Het resultaat openen

Microsoft Excel en LibreOffice Calc lezen zowel XLSX als TSV, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.

Waarvoor elk formaat bedoeld is

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

XLSX is het formaat van Microsoft, verschenen in 2007. Het is vastgelegd in ECMA-376, en dat is de moeite waard als het bestand het gereedschap moet overleven dat het schreef.

TSV stamt uit 1993, vastgelegd in IANA text/tab-separated-values. Microsoft Excel, LibreOffice Calc en pandas lezen het formaat.

Van XLSX naar TSV: veelgestelde vragen

Wordt mijn XLSX-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 XLSX naar TSV 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 XLSX naar TSV?

XLSX en TSV beschrijven de inhoud op fundamenteel andere manieren. De omzetting is daarom een reconstructie en geen kopie: getrouw, maar niet byte voor byte identiek. Alleen het eerste blad wordt gelezen, en daarvan alleen de waarden. Formules, opmaak, kolombreedtes en elk volgend blad blijven achter.

Moet ik iets installeren om een TSV-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 Tab-Separated Values normaal weergeeft.

Meer over deze formaten