Perché il tuo CSV si apre in una sola colonna in Excel (e come risolverlo)
Tutto ammassato nella colonna A non è quasi mai un file rotto. È Excel che usa il separatore di elenco delle tue impostazioni regionali invece della virgola — più due problemi collegati che corrompono i tuoi dati in silenzio.
Apri un CSV perfettamente valido e ogni riga finisce interamente nella colonna A, virgole comprese. Il file sta bene. Excel semplicemente non lo ha diviso, perché Excel non dà per scontato che una virgola separi i valori in un file di "valori separati da virgole" — usa ciò che il tuo sistema operativo ha impostato come separatore di elenco regionale.
La causa sono le tue impostazioni regionali, non il file
Nelle impostazioni in lingua inglese quel separatore è la virgola, quindi i CSV si aprono correttamente e nessuno si accorge che questo comportamento esista. In italiano, spagnolo, tedesco, francese e nella maggior parte delle impostazioni europee il separatore decimale è la virgola, quindi il separatore di elenco diventa il punto e virgola. Excel apre il tuo file delimitato da virgole, cerca punti e virgola, non ne trova, e conclude che l'intera riga è un singolo valore. Questo spiega anche perché un collega può aprire esattamente lo stesso file senza alcun problema mentre il tuo sembra rotto — avete impostazioni regionali diverse, non file diversi.
Tre modi per risolverlo, dal più rapido al più affidabile
La soluzione più rapida è aggiungere una singola riga in cima al file che dica sep=, e nient'altro. Excel tratta quella prima riga come un'istruzione invece che come dati e usa il separatore indicato. La seconda opzione è non fare doppio clic sul file: apri prima Excel, poi usa Dati > Da testo/CSV, che avvia la procedura guidata di importazione e ti lascia scegliere il delimitatore esplicitamente. La terza, utile quando non puoi modificare il file, è rinominare l'estensione da .csv a .txt — con un .txt Excel si rifiuta di indovinare e mostra sempre la procedura guidata. La procedura guidata è l'unico approccio che risolve anche i due problemi seguenti, ed è per questo che vale i clic in più.
Il secondo problema: le lettere accentate diventano caratteri illeggibili
Se i nomi appaiono come José o Müller, il file è UTF-8 ma Excel lo ha decodificato con una vecchia codifica a byte singolo. Excel rileva automaticamente l'UTF-8 solo se il file inizia con un byte order mark, un prefisso invisibile di tre byte che la maggior parte degli strumenti di esportazione e dei linguaggi di programmazione omette per impostazione predefinita. Hai due opzioni: salvare il file come "UTF-8 con BOM", oppure usare la procedura guidata e impostare Origine file su 65001: Unicode (UTF-8). Nota che il danno avviene durante l'importazione, quindi correggerlo a posteriori con trova-e-sostituisci è inutile: reimporta invece.
Il terzo problema: gli zeri iniziali e i numeri lunghi vengono distrutti
Excel indovina i tipi in modo aggressivo. Un CAP come 01234 perde lo zero iniziale e diventa 1234. Un ID ordine di 16 cifre diventa 1,23457E+15 e le cifre originali sono perse per sempre. Un valore come 1-2 può diventare una data. Nulla di tutto ciò è recuperabile una volta salvato il file, ed è il modo più comune in cui i dati CSV si corrompono silenziosamente. L'unica vera difesa è la procedura guidata di importazione: nell'ultimo passaggio, seleziona quelle colonne e imposta il loro tipo su Testo prima di concludere. Se sei tu a generare il CSV, mettere quei valori tra virgolette non serve — Excel li converte comunque.
Se sei tu a produrre il file anziché a riceverlo, il nostro convertitore da JSON a CSV ti lascia scegliere delimitatore e codifica in anticipo, così il file si apre correttamente da chi lo riceve. Tutto funziona nel tuo browser, quindi i dati di clienti o ordini non lasciano mai il tuo computer.