Cookie di statistica e di pubblicità
Usiamo cookie di statistica e di pubblicità, entrambi inviati a Google. Rifiutare non cambia niente di quello che vedi.Leggi la pagina sulla privacy
Qui converti XLSX in TSV gratis e senza account: trascina il file qui sopra e in un paio di secondi il risultato è pronto da scaricare. La conversione avviene dentro il tuo browser, quindi il file non viene mai caricato. Funziona allo stesso modo su Windows, macOS e Linux e anche su iPhone e Android, e continua a funzionare anche se stacchi la connessione.
Fino a 100 file alla volta. Formati diversi insieme non sono un problema.
Vengono convertiti uno dopo l’altro e scaricati insieme in uno ZIP.
XLSX in TSV
Il motivo per preferire un file separato da tabulazioni è pratico. Gli indirizzi contengono virgole, le descrizioni dei prodotti contengono virgole, i numeri scritti all’italiana con la virgola decimale contengono virgole. In un file separato da virgole ognuno di questi casi va racchiuso tra virgolette, e chi legge il file deve implementare correttamente quella regola per ritrovare i confini delle colonne.
Le tabulazioni quasi mai compaiono nei dati, quindi il carattere separatore smette di competere con il contenuto. Una cella con scritto "Articolo, piccolo" esce esattamente così, senza virgolette attorno. Il comando cut -f la trova, awk -F"\t" la trova, un campo di testo in qualsiasi altro programma la trova: niente deve interpretare, deve solo dividere.
Una tabulazione può finire per errore dentro una cella — incollata da qualche altra parte, digitata per sbaglio, portata da un’esportazione di un altro sistema. Quando succede, il convertitore scrive quella cella tra virgolette, perché l’alternativa sarebbe una riga che guadagna in silenzio una colonna in più.
È un’uscita corretta e un parser completo la gestisce, ma gli strumenti da riga di comando per cui questo formato viene scelto no: cut -f conta le tabulazioni e non sa nulla di virgolette, quindi da quella riga in poi vede un campo di troppo. Se una pipeline produce un output disallineato su poche righe, quasi sempre la causa è questa; conviene cercare ed eliminare le tabulazioni nel foglio originale piuttosto che correggere a valle.
Una cartella di lavoro può contenere trenta fogli. Un file separato da tabulazioni ne contiene uno, con una riga di intestazione, senza alcuna sintassi per rappresentare altro. La conversione prende quindi il primo foglio e lascia gli altri, l’unico comportamento che non produce mai in silenzio un file mescolato che nessuno ha chiesto.
Se il foglio che vi interessa non è il primo, spostatelo nella cartella di lavoro e riconvertite: richiede meno tempo che leggere questa frase. Vale la pena sapere quale foglio è davvero il primo, perché non sempre è quello che si apre per ultimo: la cartella ricorda quale scheda era attiva al salvataggio, quindi quella che vedete aprendo il file può non essere la prima, ma la conversione prende sempre quella più a sinistra.
Un foglio di calcolo non memorizza date. Memorizza un conteggio di giorni e un formato di visualizzazione, e il calendario che vedete nella cella è quel formato al lavoro. La conversione legge il valore, non il travestimento: il 1° gennaio 2024 diventa 45292, e un orario porta lo stesso numero con una frazione per l’ora del giorno.
Il conteggio parte dalla fine di dicembre 1899, motivo per cui i numeri recenti stanno nelle decine di migliaia. Convertiteli dove il file arriverà, piuttosto che riformattare prima il foglio di calcolo, perché una data scritta come testo è un nuovo problema di analisi al posto di uno aritmetico.
La riga di intestazione fornisce i nomi delle colonne, e l’insieme delle colonne è l’unione delle chiavi trovate in tutte le righe, non solo nella prima. Un foglio in cui un blocco di righe più avanti porta un campo in più produce comunque un file con quel campo nell’intestazione.
Le celle vuote restano campi vuoti invece di sparire, così ogni riga ha lo stesso numero di tabulazioni e il file resta rettangolare, esattamente quello che serve a uno strumento che lavora per posizione.
Un codice memorizzato come testo nella cartella di lavoro esce con gli zeri intatti: 007 resta 007, e un riferimento di conto con zeri davanti non viene toccato. Vale la pena dirlo perché il contrario è comune: un CSV aperto in Excel e risalvato trasforma quelle colonne in numeri, e gli zeri spariscono prima ancora che una conversione avvenga.
Quello che questa conversione non può correggere è un danno già fatto: se la cartella di lavoro contiene già 7 perché qualcuno ha importato un CSV con leggerezza il mese scorso, il TSV conterrà 7 allo stesso modo. Controllate una colonna di codici nel foglio originale prima di convertire; l’allineamento della cella di solito lo rivela, perché il testo va a sinistra e i numeri a destra.
Le righe sono separate da un semplice ritorno a capo, e il testo è UTF-8: quello che si aspettano una pipeline Unix, una differenza Git e la maggior parte degli importatori moderni. Uno strumento Windows che insiste su un’altra convenzione lo leggerà comunque quasi sempre.
L’output è testo semplice, quindi sopravvive anche a essere incollato piuttosto che caricato — in un client di database, in un campo di modulo, in un messaggio, in un editor di testo. Questa strada vale la pena ricordarla quando la destinazione ha una schermata di importazione poco affidabile ma accetta un incolla.
Postgres legge questa forma direttamente con COPY, e il dettaglio da sapere riguarda le celle vuote: nel suo formato testo un campo vuoto è una stringa vuota, non un valore nullo, e solo il simbolo \N indica un nullo. Se la colonna di destinazione è numerica e il foglio ha buchi, quella differenza è l’errore che vedrete.
R legge il file con read.delim, che assume già la tabulazione come separatore, e pandas con sep="\t". In entrambi i casi conviene specificare il tipo per qualunque colonna che sia un identificatore piuttosto che una quantità, altrimenti l’inferenza automatica applicherà lo stesso arrotondamento che ha trasformato 007 in 7.
Sia l’analisi sia la scrittura avvengono nel vostro browser, quindi non viene caricato nulla e non esiste una coda, un livello o un limite di righe oltre alla memoria della vostra macchina. Un foglio di cinquantamila righe su sei colonne si converte in un istante e produce circa 1,8 MB di testo separato da tabulazioni, a partire da un .xlsx di circa 4,3 MB.
Il limite reale è che l’intero file deve stare in memoria contemporaneamente, il che rende decine di megabyte tranquillamente gestibili e centinaia il punto in cui la scheda del browser inizia a faticare. Oltre quella soglia lo strumento giusto è un lettore che elabora il file a flusso in uno script, non un convertitore da browser.
Scegliete il CSV se la destinazione è una schermata di importazione che lo nomina esplicitamente, perché uno strumento che dice CSV spesso lo intende alla lettera e non accetterà un altro separatore per quanto sensato. Scegliete NDJSON se i valori devono mantenere il proprio tipo lungo il percorso, dato che un file delimitato non ha modo di distinguere il numero 7 dal testo "7".
Scegliete SQL se le righe vanno in una tabella già esistente, e Parquet se vanno in un motore analitico che le interrogherà più volte. Il TSV resta la risposta giusta per un caso specifico: strumenti testuali che dividono su un carattere, a patto che quel carattere non compaia nei dati.
| XLSX | TSV | |
|---|---|---|
| Nome completo | Cartella di lavoro di Excel | Tab-Separated Values |
| Estensione del file | .xlsx | .tsv, .tab |
| Tipo di media | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | text/tab-separated-values |
| Prima pubblicazione | 2007 | 1993 |
| Pubblicato da | Microsoft | — |
| Specifica | ECMA-376 | IANA text/tab-separated-values |
| Licenza | Standard aperto | Standard aperto |
| Situazione attuale | Attuale | Attuale |
| Si apre nel browser | Nessun browser | Nessun browser |
| Valutato al suo posto | CSV, ODS, Parquet | CSV, JSON |
Microsoft Excel e LibreOffice Calc leggono sia XLSX sia TSV, quindi puoi confrontare il risultato con l'originale senza un secondo programma.
I due puntano a lavori diversi: XLSX a la modifica, TSV a spostare dati fra programmi. Vale la pena valutarlo prima, perché il motivo per cui esiste uno è di solito il motivo per cui l'altro risulta scomodo.
XLSX è il formato di Microsoft, pubblicato nel 2007. È descritto in ECMA-376, e vale la pena conoscerlo se il file deve sopravvivere allo strumento che lo ha scritto.
TSV risale al 1993, descritto in IANA text/tab-separated-values. Microsoft Excel, LibreOffice Calc e pandas lo leggono.
No. Questa conversione avviene interamente nel tuo browser, quindi il file non esce dal tuo dispositivo. Puoi controllarlo da solo: apri la scheda di rete degli strumenti per sviluppatori e converti qualcosa. Vedrai la pagina stessa e le richieste di statistica e di pubblicità con cui questo servizio si paga, e nemmeno una che porti il tuo file. Il motore di questa coppia è SheetJS, un lettore e scrittore di fogli di calcolo in JavaScript; il browser lo scarica una volta e lo tiene in cache.
Sì. Senza account, senza filigrana e senza una quota giornaliera da consumare: gira sulla tua macchina, quindi puoi tornare quante volte vuoi. Il browser lavora file fino a 100 MB, 100 per volta. SheetJS viene scaricato sulla tua macchina e gira lì, ed è per questo che non c’è un contatore.
XLSX e TSV descrivono il contenuto in modi radicalmente diversi. La conversione è quindi una ricostruzione e non una copia: fedele, ma non identica byte per byte. Viene letto solo il primo foglio, e di quello solo i valori. Formule, formattazione, larghezza delle colonne e ogni foglio successivo restano fuori.
Per la conversione no: avviene nel browser che hai già aperto. Per aprire il risultato ti serve poi il programma con cui il tuo dispositivo mostra di solito Tab-Separated Values.