Un file CSV è un file di testo utilizzato per rappresentare dati organizzati in righe e colonne. CSV significa Comma-Separated Values, cioè “valori separati da virgole”, anche se nella pratica il separatore può essere diverso, per esempio il punto e virgola.

La sua forza è proprio la semplicità: invece di memorizzare colori, formule, grafici e altre caratteristiche tipiche di un foglio di calcolo, conserva essenzialmente i dati e la loro disposizione tabellare. Per questo viene utilizzato spesso per trasferire informazioni tra applicazioni differenti, esportare dati da un gestionale, spostare un catalogo ecommerce o elaborare dataset con software diversi.

Questa semplicità ha però una conseguenza importante: aprire o salvare un CSV nel modo sbagliato può modificare involontariamente separatori, date, codici e zeri iniziali. In questa guida vediamo quindi non soltanto cos’è un file CSV, ma come leggerlo, crearlo e modificarlo senza compromettere i dati.

Cos’è un file CSV e a cosa serve

Un file CSV contiene dati tabellari in forma di testo semplice. In linea generale, ogni riga rappresenta un record e ogni campo della riga corrisponde a una colonna.

Se hai, per esempio, un elenco di clienti con nome, città ed email, nel foglio di calcolo potresti visualizzare qualcosa del genere:

IDNomeCittàEmail
1MarcoMilano[email protected]
2AnnaRoma[email protected]

Lo stesso contenuto, visualizzato come testo CSV, può diventare:

ID,Nome,Città,Email
1,Marco,Milano,[email protected]
2,Anna,Roma,[email protected]

Non esistono celle nel senso proprio di Excel: esiste una sequenza di valori che un programma interpreta e ricostruisce in forma tabellare.

Questa caratteristica rende il formato particolarmente adatto allo scambio di dati tra sistemi differenti. Un’applicazione può esportare un elenco in CSV e un’altra può importarlo senza dover conoscere il formato proprietario del programma che ha generato il file.

È lo stesso principio che ritrovi quando esporti record da un database, scarichi un report o trasferisci dati da un gestionale.

Cosa significa CSV e come organizza righe, colonne e record

Il nome deriva da Comma-Separated Values. La definizione comune descritta nell’RFC 4180 utilizza la virgola come separatore e documenta convenzioni per righe, campi, intestazioni e virgolette.

Qui però c’è una distinzione utile: nella pratica non tutti i file chiamati CSV utilizzano esattamente lo stesso dialect.

La registrazione IANA di text/csv riconosce infatti differenze tra le implementazioni e specifica che non esiste un’unica “master specification” capace di descrivere ogni variante utilizzata dai diversi programmi.

Di conseguenza potresti incontrare file come:

Nome,Cognome,Città
Marco,Rossi,Milano

oppure:

Nome;Cognome;Città
Marco;Rossi;Milano

Il secondo utilizza il punto e virgola. Excel, per esempio, può usare separatori differenti in funzione delle impostazioni locali e del separatore di elenco configurato nel sistema.

Per questo “CSV” indica più il modello di dati delimitati che l’obbligo assoluto di trovare una virgola in ogni file che porta l’estensione .csv.

Estensione .csv, text/csv e perché il separatore non è sempre una virgola

L’estensione normalmente utilizzata è:

.csv

Per i contenuti trasmessi sul web, IANA registra invece il media type:

text/csv

La registrazione prevede anche parametri opzionali per il charset e per indicare la presenza dell’intestazione. In assenza del parametro charset, la registrazione corrente indica UTF-8 come default da assumere.

Questo non significa però che ogni vecchio file CSV che incontri sia realmente codificato in UTF-8. Applicazioni e archivi storici possono aver utilizzato altre codifiche: è uno dei motivi per cui caratteri accentati e simboli possono apparire corrotti quando il file viene aperto con impostazioni errate.

Esempio di file CSV: dalla tabella al testo

Vediamo un esempio leggermente più realistico:

ID,Nome,Città,Note
1,Marco,Milano,"Cliente acquisito, richiamare a settembre"
2,Anna,Roma,"Ha scritto ""richiamare domani"""
3,Luca,Napoli,"Ordine completato"

Questo esempio introduce due regole importanti.

Nel primo record il campo Note contiene una virgola. Se la virgola fosse lasciata senza protezione, un programma potrebbe interpretarla come un nuovo campo. Per questo il valore viene racchiuso tra virgolette.

Nel secondo record compaiono invece delle virgolette dentro un campo già racchiuso tra virgolette. La convenzione comune consiste nel rappresentare la virgoletta interna raddoppiandola:

"Ha scritto ""richiamare domani"""

È una piccola differenza, ma basta a capire perché un CSV non sia semplicemente “un file di testo con qualche virgola”.

Struttura di un record CSV con campi, delimitatori e virgolette per contenuti che includono virgole
Virgole e virgolette possono far parte del contenuto: il parser deve poterle distinguere dai delimitatori della struttura.

Come è fatto un file CSV

Per utilizzare correttamente il formato conviene distinguere quattro elementi: righe, campi, delimitatore e qualificatore di testo.

Una struttura CSV può essere semplice da leggere a occhio, ma diventa fragile quando i dati stessi contengono il carattere usato come separatore, ritorni a capo o virgolette.

Intestazioni, righe e campi

La prima riga viene spesso utilizzata come intestazione:

SKU,Prodotto,Prezzo,Quantità

Le righe successive contengono i record:

A001,Mouse,24.90,15
A002,Tastiera,49.90,8

L’intestazione è molto utile perché permette all’applicazione che importa il file di capire il significato delle colonne, ma non è intrinsecamente obbligatoria in ogni CSV. Anche la registrazione text/csv prevede infatti la possibilità di indicare se l’header è presente o assente.

L’aspetto essenziale è che il programma che produce il file e quello che lo importa condividano la stessa interpretazione della struttura.

Virgole, punti e virgola e altri delimitatori

La virgola è il carattere associato al nome CSV, ma molti programmi consentono di specificare un delimitatore differente.

In Excel il separatore può dipendere anche dalle impostazioni locali del sistema. Microsoft documenta esplicitamente la possibilità di cambiare il delimitatore durante l’importazione e il rapporto tra separatore di elenco e configurazione regionale.

LibreOffice Calc permette allo stesso modo di scegliere il carattere da utilizzare per dividere il testo in colonne durante l’importazione.

Se quindi apri un CSV e trovi tutti i dati nella colonna A, la prima cosa da verificare è il separatore, non il contenuto del file.

Come funzionano virgolette e doppi apici

Le virgolette diventano necessarie soprattutto quando un campo contiene elementi che potrebbero essere interpretati come parte della struttura.

Considera:

Prodotto,Descrizione
Notebook,"Computer portatile, 16 GB RAM"

Senza virgolette, la virgola dopo “portatile” potrebbe essere interpretata come separatore tra due colonne.

La stessa logica vale per campi che contengono ritorni a capo o virgolette. Prima di modificare manualmente un CSV complesso conviene quindi capire quale convenzione utilizza il programma che dovrà importarlo.

UTF-8, BOM e caratteri accentati

Il delimitatore non è l’unico elemento da controllare. Un secondo problema frequente riguarda l’encoding, cioè la modalità con cui i caratteri vengono trasformati in byte.

Se un programma interpreta un file utilizzando una codifica diversa da quella con cui è stato salvato, parole perfettamente normali come:

città
quantità
perché

possono trasformarsi in sequenze di caratteri illeggibili.

Per un nuovo flusso di lavoro è generalmente sensato utilizzare UTF-8 quando il software coinvolto lo supporta. La registrazione IANA di text/csv indica UTF-8 come charset da assumere quando il parametro non viene specificato, ma l’interoperabilità reale dipende comunque dalle applicazioni che producono e leggono il file.

Il punto pratico è semplice: se gli accenti risultano sbagliati, controlla l’encoding prima di correggere manualmente il testo.

Come aprire un file CSV correttamente

Un CSV può essere aperto con un editor di testo, Excel, Google Sheets, LibreOffice Calc o numerosi altri programmi.

La scelta importante non è tanto “quale programma apre il file?”, ma come vuoi che quel programma interpreti i dati.

Se devi soltanto ispezionare il contenuto, un editor di testo può bastare. Se devi lavorare sulle colonne, filtrare, ordinare o modificare record, un foglio di calcolo è normalmente più pratico.

Come aprire un file CSV con Excel

Il metodo più immediato consiste nel fare doppio clic sul file .csv.

Excel può aprirlo direttamente in una nuova cartella di lavoro, ma Microsoft specifica che in questo caso utilizza le impostazioni correnti per interpretare automaticamente ogni colonna.

Questo può essere sufficiente per un elenco semplice, ma è rischioso quando hai dati come:

00125
03-04
1E10

Un identificativo con zeri iniziali può essere interpretato come numero; una sequenza può diventare una data; altri valori possono essere convertiti in un tipo differente da quello desiderato.

Quando il contenuto deve restare integro, preferirei quindi l’importazione:

Dati → Da testo/CSV → seleziona il file → controlla anteprima e delimitatore → Carica o Trasforma dati.

È il percorso documentato da Microsoft per importare file CSV e di testo. L’anteprima permette inoltre di verificare il delimitatore prima di inserire i dati nel foglio.

Doppio clic o “Da testo/CSV”: quale metodo usare

Il doppio clic è comodo quando:

  • conosci già il file;
  • i dati sono semplici;
  • non ci sono codici o identificativi da preservare;
  • il separatore viene riconosciuto correttamente.

L’importazione è preferibile quando:

  • devi conservare zeri iniziali;
  • ci sono date ambigue;
  • il delimitatore non viene riconosciuto;
  • devi controllare encoding e struttura;
  • il file alimenterà successivamente un altro sistema.

In altre parole, aprire il file serve a visualizzarlo; importarlo serve a controllare come viene interpretato.

Confronto tra apertura automatica e importazione controllata di un file CSV con codici, date e valori da preservare
Per codici, date ambigue e identificatori, l’importazione controllata riduce il rischio che il foglio di calcolo reinterpretI automaticamente i valori.

Quando il valore dei dati conta, questa differenza è tutt’altro che teorica.

Come aprire un CSV con Google Sheets

Google Sheets supporta i file CSV tra i formati utilizzabili. La documentazione Google conferma, per esempio, che l’app Sheets per Android può aprire e modificare CSV e che un singolo foglio può essere esportato nuovamente come CSV.

Da computer puoi caricare il file e lavorarlo in un foglio Google oppure utilizzare le funzioni di importazione offerte dall’interfaccia.

Se invece il CSV è pubblicato online e deve alimentare automaticamente un foglio, Sheets dispone anche della funzione IMPORTDATA, che importa dati da un URL in formato CSV o TSV. La documentazione ufficiale di IMPORTDATA descrive sintassi e comportamento della funzione.

Per un normale file presente sul computer, tuttavia, non è necessario complicare il processo con formule: il caricamento/importazione del file rimane il percorso più semplice.

Come aprire un CSV con LibreOffice Calc

LibreOffice Calc è particolarmente comodo quando vuoi avere controllo esplicito sull’importazione.

Aprendo un file come Testo CSV puoi accedere alle impostazioni del filtro e specificare:

  • il carattere utilizzato come separatore;
  • il delimitatore di testo;
  • il formato da applicare alle singole colonne.

La guida ufficiale di LibreOffice per importare ed esportare CSV permette inoltre di impostare il formato di una colonna direttamente dall’anteprima.

È molto utile, per esempio, se una colonna contiene codici che devono essere trattati come testo e non convertiti in numeri.

Perché un CSV appare tutto in una colonna o modifica i dati

Gran parte dei problemi attribuiti al “file CSV danneggiato” dipende in realtà da una differenza tra il modo in cui il file è stato creato e quello con cui viene interpretato.

Separatore, encoding e conversione automatica dei tipi sono i primi tre elementi da controllare.

Separatore sbagliato: virgola e punto e virgola

Immagina questo file:

Nome;Città;Telefono
Marco;Milano;021234567
Anna;Roma;061234567

Se il programma cerca una virgola, non troverà nessun separatore e potrebbe visualizzare ogni riga in un’unica colonna.

La soluzione non consiste nel sostituire subito tutti i punti e virgola con virgole. Se un punto e virgola compare legittimamente dentro un campo, una sostituzione indiscriminata potrebbe rompere i dati.

È meglio importare il file e specificare il delimitatore corretto.

Excel permette di sceglierlo nell’anteprima di Da testo/CSV, mentre LibreOffice offre un controllo analogo nella finestra di importazione.

Accenti e caratteri strani: il problema dell’encoding

Se:

Città

diventa qualcosa di simile a:

CittÃ

la struttura delle colonne potrebbe essere perfettamente corretta: è l’interpretazione dei caratteri a essere sbagliata.

Prima di modificare il contenuto:

  1. verifica con quale encoding è stato creato il file;
  2. prova a importarlo indicando UTF-8 quando appropriato;
  3. controlla l’anteprima prima di salvare nuovamente il documento.

Salvare immediatamente sopra il file originale può rendere più difficile recuperare i valori corretti.

Date, numeri, codici e zeri iniziali modificati da Excel

Questo è uno degli errori più insidiosi perché il file può sembrare perfettamente leggibile.

Considera un codice prodotto:

000123

Se viene convertito nel numero:

123

visivamente hai perso tre caratteri, ma soprattutto hai cambiato il valore identificativo.

Microsoft cita espressamente il caso dei numeri con zeri iniziali e consiglia di utilizzare gli strumenti di importazione quando vuoi controllare il formato applicato alle colonne.

Per codici prodotto, CAP, numeri identificativi, valori che assomigliano a date e altri campi che non devono essere calcolati, la scelta corretta può essere importarli come testo.

Come creare un file CSV

Il metodo migliore dipende da dove si trovano i dati.

Se lavori già con un foglio di calcolo, esportare il foglio è generalmente più sicuro che scrivere manualmente centinaia di righe. Per dataset molto piccoli, invece, anche un editor di testo può essere sufficiente.

Creare un file CSV con Excel

Se i dati sono già in Excel:

  1. organizza ogni variabile in una colonna;
  2. verifica che ogni riga rappresenti il record corretto;
  3. usa File → Salva con nome;
  4. seleziona un formato CSV tra quelli disponibili;
  5. controlla gli eventuali avvisi relativi alle funzionalità non supportate.

Microsoft specifica che, quando un foglio viene salvato come file di testo/CSV, solo il foglio corrente viene salvato e alcune caratteristiche della cartella di lavoro non sono supportate dal formato.

Se il file dovrà essere importato da un’applicazione specifica, verifica anche quale delimitatore ed encoding quella piattaforma si aspetta.

Creare e scaricare un CSV con Google Sheets

In Google Sheets puoi organizzare normalmente i dati nel foglio e poi esportare il singolo foglio come CSV.

È importante ricordare il concetto di singolo foglio: il CSV rappresenta una tabella, non una cartella di lavoro con più schede.

Se hai un documento composto da più fogli e vuoi conservarne la struttura, un formato spreadsheet nativo come XLSX o ODS è più adatto.

Salvare un CSV con LibreOffice Calc

Con LibreOffice Calc puoi scegliere File → Salva con nome → Testo CSV e, se necessario, modificare le impostazioni del filtro prima dell’esportazione.

LibreOffice documenta chiaramente il limite fondamentale: nell’esportazione vengono salvati i dati del foglio attivo, mentre formule e formattazione vengono perse.

Questa è una caratteristica del formato, non un errore del programma.

Creare manualmente un CSV con un editor di testo

Per un file piccolo puoi utilizzare anche un editor di testo.

Per esempio:

ID,Prodotto,Prezzo
1,Mouse,24.90
2,Tastiera,49.90
3,Monitor,199.00

Salva poi il documento con estensione .csv, usando l’encoding richiesto dal sistema di destinazione.

Il metodo manuale è utile soprattutto per capire il funzionamento del formato o creare piccoli file di prova. Su dataset grandi aumenta invece la probabilità di introdurre errori nei delimitatori, nelle virgolette o nel numero di campi.

Cosa si perde quando salvi un foglio in CSV

Questa è probabilmente la distinzione più importante dell’intera guida:

un CSV conserva dati tabellari, non la struttura completa di un documento Excel o Calc.

Pensare al CSV come a “un Excel più leggero” porta facilmente a errori.

Formattazione, colori, grafici e formule

Un foglio di calcolo può contenere:

  • colori;
  • font;
  • bordi;
  • celle unite;
  • formule;
  • grafici;
  • tabelle pivot;
  • regole di formattazione;
  • oggetti e immagini.

Un normale file CSV non dispone di una struttura per conservare questi elementi.

LibreOffice specifica esplicitamente che nell’esportazione CSV vengono salvati soltanto i dati del foglio attivo e che formule e formattazione vengono perse. Microsoft avverte allo stesso modo che i formati di testo non supportano tutte le caratteristiche di una cartella di lavoro.

Quindi, se parti da una cella contenente:

=A2*B2

il file CSV è destinato allo scambio del risultato/dato, non alla conservazione del modello di calcolo come farebbe un file XLSX.

Fogli multipli e tipi di dato

Un’altra differenza importante riguarda i fogli multipli.

Una cartella Excel può avere:

Clienti
Ordini
Prodotti
Statistiche

Un singolo CSV rappresenta invece una sola tabella. Se vuoi esportare le quattro tabelle separatamente, normalmente avrai quattro file CSV distinti.

Anche i tipi di dato sono meno ricchi: nel file trovi testo delimitato, mentre sarà il programma che lo importa a decidere se una sequenza deve essere trattata come numero, data, testo o altro.

Ecco perché la fase di importazione è così importante.

Perché CSV è pensato per i dati, non per conservare un foglio Excel

Il limite del CSV è anche il suo vantaggio.

Eliminando buona parte delle caratteristiche specifiche del programma che ha prodotto i dati, diventa più semplice trasferire una tabella da un sistema all’altro.

Per esempio, WooCommerce utilizza CSV nei flussi di importazione ed esportazione dei prodotti. Se il tuo obiettivo è spostare un catalogo, conviene seguire la procedura specifica per importare prodotti in WooCommerce invece di modificare arbitrariamente le colonne del file.

Allo stesso modo, puoi partire da un catalogo esistente ed esportare i prodotti WooCommerce in CSV per utilizzarli nel flusso previsto dalla piattaforma.

Il formato è il contenitore. La semantica delle colonne viene definita dal sistema che produce e importa i dati.

CSV, Excel, TSV e JSON: quale formato scegliere

Non esiste un formato migliore in assoluto. La scelta dipende da che cosa devi conservare e da come i dati verranno utilizzati.

FormatoIdeale perLimite principale
CSVscambio di dati tabellariniente struttura complessa del foglio
XLSXlavoro in Excel, formule e formattazioneformato più ricco e dipendente da un modello spreadsheet
TSVdati tabellari dove il separatore è il tabmeno diffuso in alcuni workflow
JSONdati strutturati e gerarchici, API e applicazionimeno naturale da gestire come semplice tabella

CSV vs Excel/XLSX

Scegli CSV quando il tuo obiettivo principale è trasferire dati.

Scegli XLSX quando devi conservare il documento come foglio di lavoro: formule, più fogli, formattazione, grafici e funzionalità proprie di Excel.

Un CSV esportato da Excel non è quindi un backup completo della cartella di lavoro.

CSV vs TSV

TSV significa Tab-Separated Values: utilizza normalmente il carattere di tabulazione per separare i campi.

Il modello è molto simile a quello di un CSV delimitato. Può essere comodo quando i dati contengono molte virgole, ma non elimina la necessità di concordare struttura ed encoding tra chi genera il file e chi lo importa.

Se l’applicazione di destinazione richiede espressamente CSV, cambiare arbitrariamente formato in TSV non risolve il problema: devi rispettare il formato previsto dal sistema.

CSV vs JSON

CSV funziona particolarmente bene quando i dati sono naturalmente tabellari:

prodotto → prezzo → quantità

JSON è invece più adatto quando devi rappresentare strutture annidate o relazioni più articolate.

Per esempio, un singolo prodotto potrebbe avere un array di immagini, più varianti e oggetti secondari. In JSON questa gerarchia può essere rappresentata direttamente; in CSV deve essere “appiattita” in righe e colonne o codificata secondo convenzioni specifiche dell’applicazione.

Lo stesso ragionamento vale per XML, che utilizza una struttura marcata e può rappresentare relazioni più complesse. Se vuoi approfondire questo formato, trovi una guida dedicata a cos’è XML e come viene utilizzato con WordPress.

Errori comuni nei file CSV e come evitarli

Un CSV apparentemente semplice può produrre risultati sbagliati senza generare un vero messaggio di errore.

Per questo, prima di importare migliaia di record, conviene sempre provare un piccolo campione e verificare il risultato.

Numero diverso di campi tra le righe

Considera:

ID,Nome,Città
1,Marco,Milano
2,Anna
3,Luca,Napoli

La seconda riga contiene un campo in meno.

A seconda del programma, il record può essere accettato con un valore vuoto oppure considerato problematico. Se la colonna mancante è intenzionalmente vuota, è molto più chiaro rappresentarla esplicitamente:

2,Anna,

Prima di importare dati importanti controlla quindi che la struttura delle righe corrisponda a quella richiesta dall’applicazione di destinazione.

Delimitatori presenti dentro il contenuto

Questo record è ambiguo:

1,Marco,Milano, Lombardia

Se il file prevede quattro colonne ma “Milano, Lombardia” deve essere un unico campo, quel contenuto deve essere gestito secondo le convenzioni del CSV, per esempio:

1,Marco,"Milano, Lombardia"

Il problema non è la virgola in sé: è una virgola che il parser non riesce a distinguere dal delimitatore strutturale.

Virgolette non chiuse o non gestite correttamente

Anche questo è un errore frequente:

1,"Marco,Milano

Manca la chiusura del campo tra virgolette.

Se devi inserire una virgoletta nel valore, la convenzione comune prevede il raddoppio:

1,"Marco ha scritto ""OK"""

Per file generati automaticamente, lascia che sia una libreria CSV o il software di esportazione a gestire questi dettagli invece di costruire le righe concatenando manualmente stringhe.

Importare un CSV senza alterare codici, date e identificatori

Quando il contenuto comprende:

  • SKU;
  • CAP;
  • numeri cliente;
  • codici con zeri iniziali;
  • date in formati ambigui;
  • numeri molto lunghi;
  • identificatori che assomigliano a valori numerici,

non affidarti automaticamente al tipo di dato scelto dal foglio di calcolo.

Importa il file, controlla l’anteprima e assegna alle colonne il tipo corretto. Per un identificatore, spesso “testo” è più appropriato di “numero”, perché non devi eseguire calcoli: devi preservare esattamente la sequenza originale.

Questo è il passaggio che separa un CSV semplicemente “aperto” da un CSV importato correttamente.

Conclusione

Il file CSV rimane utile proprio perché fa poche cose: rappresenta dati tabellari in un formato testuale semplice e facilmente scambiabile tra applicazioni.

Questa semplicità, però, non significa che ogni CSV possa essere aperto e risalvato senza conseguenze. Separatore, encoding, virgolette e conversione automatica dei tipi determinano il modo in cui i valori vengono interpretati.

Se devi soltanto leggere un piccolo elenco, aprire il file direttamente può essere sufficiente. Se invece stai gestendo codici prodotto, anagrafiche, ordini, dataset o informazioni destinate a un altro software, la strada più sicura è importare il file controllando delimitatore e tipi di colonna, verificare un campione e soltanto dopo lavorare sull’intero dataset.

E soprattutto ricorda il confine fondamentale: CSV è un formato per scambiare dati. Se hai bisogno di conservare formule, grafici, fogli multipli e formattazione, devi utilizzare un formato di foglio di calcolo più ricco.