back to top

File CSV: cosa sono, come si aprono e come crearli

In questo articolo cercheremo di capire cos’รจ il formato CSV, a cosa serve e come รจ possibile leggere e creare file di questo tipo.

Premessa: un caso pratico di utilizzo di CSV nel lavoro di sviluppatore

Alcuni giorni fa ho effettuato una call con i commerciali e gli sviluppatori di un’azienda specializzata nella realizzazione di CRM (Customer Relationship Management) in Cloud, per organizzare la migrazione di un’applicazione presso la loro infrastruttura. Parlando della fase di esportazione dei dati dal loro database MySQL, accessibile in questo caso solo via SSH, ho detto loro che avrei potuto effettuare l’invio dei dati in SQL o in un altro formato eventualmente piรน adatto alla piattaforma di destinazione. La risposta รจ stata โ€œSarebbe possibile disporre del dataset in un file CSV?โ€.

Cosa sono i file CSV

Per capire il motivo di questa richiesta รจ necessario ricordare che, tra i tanti formati disponibili per lo scambio di dati, a livello strutturale il CSV (Comma-Separated Values) รจ uno dei piรน semplici da utilizzare per la rappresentazione di informazioni sotto forma di tabelle e quindi, almeno potenzialmente, puรฒ essere utilizzato per le procedure di esportazione/importazione dati da database.

Il formato CSV prevede la generazione di un comune file di testo nel quale i dati vengono separati tramite virgole (o altri caratteri) e ritorni a capo che consentono di distinguere, rispettivamente, il contenuto delle colonne e delle righe, ricreando la struttura logica di una tabella.

Un semplice esempio di file CSV

Per proporre un esempio di facile comprensione รจ possibile partire da una tabella come quella mostrata di seguito:

ComuneCAPProvinciaRegione
Monserrato09042CagliariSardegna
Vasto66054ChietiAbruzzo
Paese31038TrevisoVeneto
Campodimele04020LatinaLazio

Il contenuto del file CSV risultante dall’esportazione dei dati elencati in precedenza potrebbe essere il seguente:

Comune,CAP,Provincia,Regione
Monserrato,09042,Cagliari,Sardegna
Vasto,66054,Chieti,Abruzzo
Paese,31038,Treviso,Veneto
Campodimele,04020,Latina,Lazio

Come รจ possibile vedere la sua struttura รจ molto semplice:

  • a ciascuna riga (tranne la prima dedicata ai nomi dei campi) corrisponde un record della tabella;
  • i valori dei diversi campi sono separati tramite una virgola;
  • le diverse righe sono contrassegnate da un semplice ritorno a capo.

File CSV piรน complessi

CSV non รจ perรฒ un formato standard pertanto non esistono delle specifiche precise per la formattazione dei dati contenuti all’interno dei file di questo tipo. Se tale caratteristica da un lato rappresenta uno svantaggio (una formattazione non universale potrebbe creare dei problemi di portabilitร ) dall’altro offre una certa libertร  per quanto riguarda le modalitร  con cui si possono rappresentare dati di diverso tipo e consistenza.

Quella che abbiamo appena visto รจ la forma piรน semplice per un file CSV. E’ molto frequente che i dati di ciascun campo siano delimitati da apici (‘) o doppi apici (“): cosรฌ facendo รจ possibile utilizzare il carattere virgola anche all’interno dei singoli campi senza che questo venga interpretato come il delimitatore del campo stesso.

Facciamo un altro esempio partendo da questa tabella di dati in cui sono rappresentati alcuni contatti:

Nome e CognomeIndirizzoComuneCAPProvincia
Mario RossiVia Garibaldi, 123Monserrato09042Cagliari
Carlo BianchiVia Cavour, 24Vasto66054Chieti
Giuseppe VerdiVia XX Settembre, 36Paese31038Treviso

Come รจ possibile notare nel secondo campo (Indirizzo) il carattere virgola รจ utilizzato per separare la via dal numero civico.

Vediamo, quindi, come potremmo rappresentare questi dati sotto forma di file CSV:

'Nome e Cognome','Indirizzo','Comune','CAP','Provincia'
'Mario Rossi','Via Garibaldi, 123','Monserrato','09042','Cagliari'
'Carlo Bianchi','Via Cavour, 24','Vasto','66054','Chieti'
'Giuseppe Verdi','Via XX Settembre, 36','Paese','31038','Treviso'

Come potete vedere i valori dei singoli campi sono racchiusi dentro ad apici e questo ci consente di rappresentare la virgola senza che questa venga interpretata come separatore.

Al posto dell’apice avremmo potuto utilizzare il doppio apice: ciรฒ sarebbe stato utile, ad esempio, qualora il carattere apice (esattamente come la virgola) fosse stato presente in qualche valore, ad esempio:

Nome e CognomeIndirizzoComuneCAPProvincia
Gabriele D’AnnunzioCorso Gabriele Manthone, 116Pescara65100Pescara

In questo caso il carattere doppio apice sembra piรน adatto in quanto consente di presenrvare il carattere apice utilizzato nel nome senza creare confusioni:

"Nome e Cognome","Indirizzo","Comune","CAP","Provincia"
"Gabriele D'Annunzio","Corso Gabriele Manthone, 116","Pescara","65100","Pescara"

Supponiamo ora di dover rappresentare dei dati che, al loro interno, prevedono sia apici che doppi apici… in questo caso, non essendo possibile scegliere un terzo carattere bisognerร  procedere raddoppiando i doppi apici giร  presenti nel valore. Facciamo un esempio.

OperaScenaPersonaggioBattuta
AmletoAtto terzo, scena primaAmleto“Essere, o non essere” questo รจ il dilemma: se sia piรน nobile nella mente soffrire colpi di fionda e dardi d’oltraggiosa fortuna o prender armi contro un mare d’affanni e, opponendosi, por loro fine?

La sua rappresentazione in CSV รจ la seguente:

"Opera","Scena","Personaggio","Battuta"
"Amleto","Atto terzo, scena prima","Amleto","""Essere, o non essere"" questo รจ il dilemma: se sia piรน nobile nella mente soffrire colpi di fionda e dardi d'oltraggiosa fortuna o prender armi contro un mare d'affanni e, opponendosi, por loro fine?"

Come potete vedere le virgolette del campo “Battuta” sono state raddoppiate al fine di non confondere l’interprete del file CSV ed evitare che le identificasse come dei delimitatori di campo.

Come creare e aprire un file CSV

Le poche regole per la stesura di un file CSV sono state descritte ampiamente nei paragrafi precedenti e, come รจ possibile osservare, sono anche abbastanza flessibili. Ne consegue che per la creazione di un documento di questo tipo รจ sufficiente utilizzare un comune editor di testo come per esempio il Blocco Note di Windows, Nano o Gedit su Linux o TexEdit su macOS.

Alcuni di questi software, inoltre, sono multipiattaforma e possono essere utilizzati su diversi sistemi operativi.

CSV รจ perรฒ principalmente uno strumento per l’esportazione e difficilmente ci si troverร  a dover scrivere un file di questo tipo “a mano”, piรน probabilmente esso sarร  il risultato della conversione di una tabella creata con altre applicazioni (come per esempio Excel di Microsoft, Calc di LibreOffice o i fogli di lavoro di Google Documenti).

Esportare/Aprire dati CSV con Microsoft Excel

Su Excel, ad esempio, una tabella come la seguente:

puรฒ essere salvata in formato CSV tramite il percorso โ€œFile > Salva con nome…โ€ che, scegliendo tra le voci offerte dal menu di selezione โ€œSalva comeโ€, mette a disposizione l’opzione โ€œCSV UTF-8 (delimitato dalla virgole) (*.csv)โ€ da confermare cliccando su โ€œSalvaโ€.

Per aprire un file CSV in Excel si deve seguire invece il percorso โ€œFile > Apriโ€ e poi selezionare il documento di proprio interesse. Fatto questo si aprirร  la finestra โ€œImportazione guidata testoโ€ che permette di scegliere il tipo di file che meglio si adatta ai dati mettendo a disposizione due opzioni:

  • Delimitato: con campi separati da virgole o tabulazioni;
  • Larghezza fissa: con compi allineati in colonne e separati da spazi.

Nel caso dei file CSV l’opzione migliore รจ quindi la prima che, plausibilmente, apparirร  come preselezionata.

Nella stessa finestra รจ presente anche il pulsante di spunta โ€œDati con intestazioniโ€ da selezionare per indicare ad Excel che la tabella rappresentata nel documento contiene i nomi dai campi.

Segue un ulteriore passaggio attraverso cui indicare il delimitatore utilizzato per la separazione dei dati, nella maggior parte dei casi quest’ultimo รจ la โ€œvirgolaโ€ ma l’applicazione permette di definire anche dei delimitatori alternativi (tabulazione, punto e virgola, spazio o eventuali personalizzazioni).

Fatto questo non rimane altro che selezionare la voce โ€œNel foglio di lavoro esistenteโ€ per definire la destinazione dei dati e si potrร  finalmente visualizzare l’esito dell’importazione effettuata.

Esportare/Aprire dati CSV con LibreOffice Calc

Su Calc di LibreOffice la procedura รจ sostanzialmente la stessa appena descritta per Microsoft Excel, il passaggio relativo al menรน per la selezione del formato richiede perรฒ la scelta dell’opzione โ€œTesto CSV (*.csv)โ€.

Quando invece si desidera aprire un file CSV con la medesima applicazione รจ sufficiente cliccare su โ€œFileโ€ e successivamente su โ€œApri…โ€ per poi selezionare il documento da visualizzare. Si aprirร  cosรฌ una finestra nella quale Calc richiede la codifica di caratteri Unicode da utilizzare per la lettura dei dati (UTF-8 in corrispondenza della sezione โ€œTipo di carattereโ€ nell’esempio rappresentato dalla figura successiva).

La finestra offre un’anteprima della tabella generata in output una volta cliccato su โ€œOKโ€. Se essa รจ corretta, cosa che dovrebbe verificarsi nella maggior parte dei casi, non sarร  necessario intervenire sulle altre opzioni.

Se il contenuto della tabella dovese risultare illeggibile si consiglia di intervenire selezionando una codifica alternativa per i caratteri, nel caso in cui invece la disposizione dei dati in tabella non dovesse essere corretta รจ probabile che l’โ€Opzione di separazioneโ€ scelta non sia quella ottimale. La figura seguente mostra ad esempio un’anteprima non ordinata della tabella a causa del fatto che la virgola non รจ stata selezionata come separatore:

Esportare/Aprire dati CSV con Google Documenti

Sui Fogli di Lavoro di Google il percorso da seguire per l’esportazione in CSV รจ infine โ€œFile > Scarica > Valori separati da virgola (.csv, foglio corrente)โ€.

Fatto questo si potrร  scaricare il file della tabella in formato CSV sul proprio dispositivo.

Per aprire un file CSV รจ necessario invece lanciare l’applicazione e seguire il percorso โ€œFile > Apriโ€. Si aprirร  cosรฌ la finestra di dialogo โ€œApri un fileโ€ tramite la quale รจ possibile selezionare โ€œCaricaโ€ per importare il documento dal proprio dispositivo nel caso in cui esso non sia giร  presente sullo storage di GDrive.

Se il file CSV caricato รจ stato correttamente formattato il sistema sarร  in grado di aprirlo automaticamente restituendo la tabella e i dati al suo interno.

Conclusioni

In questo articolo abbiamo visto cosa sono i file CSV, a cosa servono e come sono strutturati. Abbiamo anche avuto modo di vedere come crearli e gestirli con alcune popolari applicazioni per la gestione dei fogli di calcolo.

Se lavorate con i database, sicuramente, vi troverete, prima o poi, ad avere a che fare con CSV in quanto, come detto nell’introduzione di questo articolo, รจ un formato assai comunemente utilizzato per l’esportazione e l’importazione di dati.

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.

Leggi anche...

Come ottenere l’ID dell’ultimo record inserito in MySQL, PostgreSQL, SQL Server e Oracle?

Ottenere l'ID dell'ultimo record inserito in una tabella, dopo...

Database completo regioni, province e comuni italiani (in formato SQL)

Quando si sviluppa un sito web o un'applicazione in...

Confrontare due tabelle e trovare i record senza corrispondenza

all'interno di un database relazionale può essere utile poter...

Eseguire comandi SQL online con SQL Fiddle

Sì. E' possibile testare codice SQL senza aver installato...

SQL: Calcolare la media dei valori di più campi

Attraverso una semplice query SQL è possibile calcolare dinamicamente...

MySQL: modificare il valore di AUTO_INCREMENT

Come è noto, l'attributo AUTO_INCREMENT di MySQL può essere...
Pubblicitร