Il formato CSV rappresenta uno dei modi più semplici per rappresentare dati in forma tabellare all'interno di un semplice file di testo. Non a caso, questo formato di file è uno dei primi ad essersi diffuso per l'interscambio di dati, e nonostante la presenza di altri formati altrettanto conosciuti ed utilizzati (si pensi ad XML, JSON o YAML), è ancora oggi diffuso in molte applicazioni.
In questo approfondimento impareremo com'è fatto un file CSV, come possiamo crearlo e quali software ci permettono di aprirlo e leggerne il contenuto con maggiore facilità.
Com'è fatto un file CSV
Per capire com'è fatto un file CSV, possiamo partire proprio dal nome di questo formato. CSV è infatti un acronimo, che sta per Comma-Separated Values (valori separati da virgola): come già anticipato, infatti, il file CSV non è altro che un file di testo, che utilizza le virgole per separare i dati contenuti all'interno delle singole celle di una tabella.
Immaginiamo, ad esempio, di volere rappresentare in formato CSV i dati della tabella seguente:
Nome | Cognome | Età |
---|---|---|
Mario | Rossi | 20 |
Luigi | Bianchi | 51 |
Clara | Esposito | 18 |
Gennaro | Fumagalli | 35 |
Separando i dati contenuti in ogni riga da una semplice virgola, otterremo il seguente equivalente file CSV:
Nome,Cognome,Età
Mario,Rossi,20
Luigi,Bianchi,51
Clara,Esposito,18
Gennaro,Fumagalli,35
Quello visto sopra è il più semplice esempio di generazione di un file CSV, che però spesso non coincide con quanto contenuto in molti file che utilizzano questo formato. Ad esempio, è molto comune l'utilizzo delle doppie virgolette ("
) o degli apici ('
) per evidenziare l'inizio e la fine di una stringa. Questa convenzione, inoltre, permette di includere anche le virgole all'interno di stringhe di testo. Supponiamo, ad esempio, di aggiungendo la seguente riga alla precedente tabella:
Francesco, Maria | Cossu | 37 |
Con l'uso dei doppi apici, il nostro file CSV sarebbe diventato simile al seguente:
"Nome","Cognome","Età"
"Mario","Rossi",20
"Luigi","Bianchi",51
"Clara","Esposito",18
"Gennaro","Fumagalli",35
"Francesco, Maria","Cossu",37
La situazione si complica ulteriormente se pensiamo che, in qualche caso, lo stesso separatore (che, per definizione, dovrebbe sempre essere rappresentato da una virgola) è talvolta sostituito da altri caratteri: esistono infatti file CSV che utilizzano come separatore il carattere del punto e virgola (;
), o addirittura altri che sfruttano semplicemente spazi o tabulazioni (in quest'ultimo caso si parla di formato TSV).
Queste differenze sono tutte derivanti dal principale problema che affligge il formato CSV: l'assenza di uno standard vero e proprio. L'unica cosa che più vi si avvicina è la RFC 4180, che definisce una serie di prassi comuni, più o meno consolidate (tra cui l'uso dei doppi apici per le stringhe).
Come creare un file CSV
Una volta compresa la struttura di un file CSV, unitamente alla sua natura testuale, la creazione di tali file è abbastanza semplice. In linea di principio, infatti, possiamo sfruttare un qualsiasi editor di testo, incluso TextEdit se siamo utenti MacOS, gEdit (ma anche vi o nano) e simili per gli utenti Linux, e perfino il buon vecchio Blocco Note (o Notepad) di Windows. Basterà convertire la nostra tabella seguendo le semplici regole descritte sopra, ed avremo rapidamente creato un file CSV perfettamente valido. Possiamo anche verificare la "validità" di tale file (entro i limiti di quanto ciò abbia senso, considerata la già menzionata assenza di standard) tramite strumenti online come CSV Lint o Flat File Checker, per citarne un paio.
È lecito, però, chiedersi se esistono soluzioni più performanti per la generazione di questo tipo di file. Se abbiamo a che fare con tabelle di dimensioni ridotte, come quella vista in precedenza, allora è chiaro che la conversione "manuale" può essere un'idea percorribile. Ma nel momento in cui una tabella è molto più grande (pensiamo a centinaia o migliaia di righe), ecco che questo approccio mostra tutti i suoi limiti.
I migliori software per creare file CSV sono quelli che ci permettono meglio di gestire dati in forma tabellare: i gestori di fogli di calcolo. Tutti i principali software di questo tipo, inclusi Microsoft Excel, LibreOffice Calc, OpenOffice Calc e perfino Google Sheets, supportano di fatto l'esportazione di un foglio (che, di fatto, altro non è che una tabella) in formato CSV:
- su Microsoft Excel, è sufficiente cliccare su File -> Salva con nome..., e nella finestra che si apre cliccare sulla tendina corrispondente a Salva come, selezionare l'opzione CSV, ed infine salvare
- su LibreOffice Calc ed OpenOffice Calc la procedura è la stessa di quella appena descritta, con la differenza che l'opzione da selezionare su Salva come è Testo CSV
- su Google Sheets, è sufficiente andare su File -> Scarica come -> Valori separati da virgola (.csv, foglio corrente)
Si noti che, così facendo, tutti i dati aggiuntivi presenti in un foglio di calcolo (incluse le formule, la formattazione, e gli eventuali riferimenti o link) andranno persi: un file CSV è infatti costituito da solo testo, e non prevede funzionalità avanzate.
Aprire un file CSV
A questo punto della discussione, sarà facile intuire che un file CSV può essere aperto con un qualsiasi editor di testo, inclusi quelli già menzionati in precedenza. Inoltre, è possibile aprirlo anche con un gestore di fogli di calcolo. Per brevità, di seguito riportiamo la procedura per importare un file CSV su Microsoft Excel, dal momento che ciò è abbastanza simile anche sui software analoghi.
Una volta aperto Microsoft Excel, apriamo il menu Dati e selezioniamo la voce Da testo, all'interno del sottomenu Carica dati esterni:
Dalla finestra che si aprirà, selezioniamo quindi il file CSV che vogliamo importare.
Fatto ciò, Excel mostrerà una nuova finestra, in cui dovremo specificare che i dati sono delimitati, e se essi includono (o meno) una intestazione.
Cliccando su Avanti, la schermata successiva ci permette di specificare il delimitatore (che, a questo punto, potrebbe anche non essere una virgola), visualizzando nella parte bassa una semplice anteprima di come i dati verranno strutturati dopo l'importazione.
Nella schermata successiva potremo limitarci a confermare, cliccando su Fine. A questo punto, rimane soltanto da specificare la destinazione dei dati importati:
Il risultato sarà simile al seguente, come dimostra come un semplice file di testo può essere trasformato in un vero e proprio foglio di calcolo: