Vai allo strumento
ViewCSV
Nessun caricamento del file

Convalida un file CSV

signups.csv· DATI DI ESEMPIO7 righe · 6 colonne
Regole per colonna (facoltative)
Le regole vengono salvate in formato JSON Table Schema (Frictionless Data), leggibile anche da altri strumenti.
Errori: 4 · avvisi: 2
Rapporto
RigaColonnaProblemaValore
1nameInizia o finisce con degli spazi. Leonardo Rossi
2emailFormato non valido: previsto Indirizzo email.not-an-email
2signup_dateValore non valido: previsto Data (AAAA-MM-GG).2026-02-30
6emailFormato non valido: previsto Indirizzo email.N/A
6signup_dateValore non valido: previsto Data (AAAA-MM-GG).11/03/2026
7nameInizia o finisce con degli spazi.Aurora Romano

I numeri di riga contano le righe di dati dopo l’intestazione; un a capo tra virgolette non crea una nuova riga.

Apri un file CSV per controllarne la struttura: ogni record rispetto al numero di campi dell’intestazione, nomi di colonna vuoti o duplicati, virgolette fuori posto, fine riga misti e righe vuote. Se vuoi, aggiungi regole per colonna, come numero intero, data, email, obbligatorio, univoco, valori ammessi o un’espressione regolare: ogni problema viene elencato con la riga di dati, la colonna e il valore. Le regole usano il vocabolario di Frictionless Table Schema. Il controllo avviene nel tuo browser, senza caricare il file.

Come convalidare un file CSV

  1. Apri un file .csv, .tsv o .txt. Il delimitatore e un eventuale BOM UTF-8 o UTF-16 vengono riconosciuti; se le colonne non tornano, scegli un altro delimitatore o una codifica legacy nelle impostazioni di importazione.
  2. Se vuoi, indica il numero di colonne che ogni record deve avere. Se lasci il campo vuoto, vale il numero di colonne dell’intestazione.
  3. Se vuoi, aggiungi regole per le colonne che ti interessano: un tipo, se il valore è obbligatorio o deve essere univoco, i valori ammessi, un minimo e un massimo, un intervallo di lunghezza o un modello.
  4. Avvia il controllo e scorri il rapporto: prima gli errori, poi gli avvisi. Correggi i valori nell’editor CSV o sistemali con Pulisci dati CSV, poi convalida di nuovo.

Per vedere tipi, celle vuote e valori distinti di ogni colonna prima di scrivere le regole, esamina il file con il profilo delle colonne.

Controlli di struttura su ogni record

Numero di campi (errore)Un record ha più o meno campi dell’intestazione, o del numero che hai indicato. La RFC 4180 prevede che ogni record abbia lo stesso numero di campi; una differenza di solito indica un delimitatore non racchiuso tra virgolette o un valore mancante.
Intestazione vuota (errore)Un nome di colonna è vuoto o contiene solo spazi. Il rapporto ne indica la posizione.
Intestazione duplicata (errore)Due nomi di colonna sono uguali dopo aver tolto gli spazi esterni. Il rapporto indica entrambe le posizioni.
Virgoletta fuori posto (avviso)Una virgoletta compare dentro un valore non racchiuso tra virgolette, come 5" screen. Il valore resta com’è scritto; il rapporto indica quante volte succede nel file.
Testo dopo la virgoletta di chiusura (avviso)Dopo una virgoletta di chiusura ci sono altri caratteri prima del delimitatore successivo, come in "abc"x.
Fine riga misti (avviso)Il file mescola fine record CRLF, LF e CR. Il rapporto conta ciascun tipo.
Righe vuote (avviso)Righe vuote tra un record e l’altro. Vengono saltate e il rapporto le conta.
Spazi esterni (avviso)Un valore ha spazi prima o dopo il testo. Attivo per impostazione predefinita; i valori composti solo da spazi non vengono segnalati.

Un valore tra virgolette che non viene mai chiuso interrompe il controllo con un errore che indica il record in cui inizia, perché il resto del file non si può più dividere in record in modo affidabile.

Regole per colonna: tipo, obbligatorio, univoco e modello

Tipo: numero interoSolo un segno facoltativo e cifre, come -12 o 007. I valori oltre ±9.007.199.254.740.991 vengono segnalati: per i codici lunghi usa una regola di tipo testo con un modello.
Tipo: numeroNotazione decimale semplice con il punto, come 3.5, -0.25 o 1e3. Niente separatori delle migliaia, valute o spazi esterni: un importo all’italiana con la virgola decimale non supera questa regola.
Tipo: true / falsetrue o false, con maiuscole o minuscole a piacere. 1, 0, yes e no vengono segnalati.
Tipo: data, data e oraUna data di calendario reale scritta YYYY-MM-DD, quindi 2024-02-30 viene segnalata. Data e ora aggiunge un orario (2024-03-05T09:30, con secondi e fuso Z o +02:00 facoltativi).
Tipo: testo con un formatoEmail (un semplice controllo della forma name@domain.tld, non una verifica di recapito), URI (un URL assoluto con schema) o UUID (versioni da 1 a 8).
ObbligatorioIl valore non deve essere vuoto. Senza questa regola, i valori vuoti superano tutte le altre.
UnivocoNessun valore può ripetersi nella colonna. Il rapporto indica la riga in cui è comparso per la prima volta. I valori vuoti non vengono confrontati.
Valori ammessiIl valore deve coincidere esattamente con uno di quelli elencati, maiuscole e spazi compresi.
Minimo, massimoLimiti inclusi per le colonne di numeri interi e decimali, oppure date ISO per le colonne di tipo data e data e ora.
Lunghezza minima e massimaContata in caratteri Unicode, quindi é e 日 valgono uno ciascuno.
ModelloUn’espressione regolare che deve corrispondere all’intero valore, come richiede Table Schema; per esempio [A-Z]{2}\d{4}. Il confronto distingue maiuscole e minuscole.

Una regola si applica alla colonna la cui intestazione coincide esattamente con il suo nome; le regole per colonne assenti dal file vengono saltate. Puoi salvare le regole in un file JSON Table Schema e ricaricarle per l’export successivo; tipi e chiavi sconosciuti in uno schema caricato vengono ignorati.

Come leggere il rapporto

  • I numeri di riga contano i record di dati dopo l’intestazione (l’intestazione è la riga 0). Un valore con un a capo tra virgolette resta un solo record, quindi il numero di riga può essere diverso dal numero di linea in un editor di testo.
  • Ogni problema indica la colonna e riporta il valore, così puoi cercarlo nel visualizzatore CSV o nell’editor.
  • Gli errori violano la struttura o una regola; gli avvisi segnalano dati che sono CSV valido ma che spesso creano problemi in importazione.
  • Vengono elencati fino a 5.000 problemi. Oltre questa soglia i totali per tipo di problema continuano a essere contati e l’elenco viene indicato come troncato.

Limiti della convalida e privacy

Il validatore legge un record alla volta, quindi i file oltre il limite interattivo di 25 MB vengono verificati in streaming in un worker in background, con avanzamento e possibilità di annullare. In streaming, al momento, i record con meno campi dell’intestazione vengono completati prima del controllo, perciò come errore sul numero di campi vengono segnalati solo i record con campi in più.

La convalida avviene nel tuo browser. Il CSV non viene caricato su alcun server.

Esempio: verificare un export di iscrizioni con quattro regole

Un export di iscrizioni verificato con quattro regole: id è un intero obbligatorio e univoco; email è un testo obbligatorio in formato email; signup_date è una data; plan ammette basic, pro e team. Il risultato è il rapporto del validatore, un problema per riga dopo il riepilogo: una data impossibile, un’email senza dominio di primo livello, Pro con la maiuscola, un id ripetuto, un’email mancante e team con uno spazio finale, che è sia un avviso sia un valore non ammesso.

CSV
id,email,signup_date,plan
1,ana@example.com,2024-02-30,pro
2,kim@example,2024-03-01,Pro
2,bao@example.com,2024-03-04,basic
4,,2024-03-05,team 
Rapporto di convalida
{"rows":4,"errors":6,"warnings":1,"truncated":false}
{"code":"type","row":1,"column":"signup_date","value":"2024-02-30","params":{"type":"date"}}
{"code":"format","row":2,"column":"email","value":"kim@example","params":{"format":"email"}}
{"code":"enum","row":2,"column":"plan","value":"Pro","params":{"allowed":"basic, pro, team"}}
{"code":"unique","row":3,"column":"id","value":"2","params":{"first":2}}
{"code":"whitespace","row":4,"column":"plan","value":"team ","params":{}}
{"code":"required","row":4,"column":"email","value":"","params":{}}
{"code":"enum","row":4,"column":"plan","value":"team ","params":{"allowed":"basic, pro, team"}}

Domande frequenti

Perché un valore con uno spazio viene segnalato rispetto all’elenco dei valori ammessi?

Le regole confrontano il valore esattamente com’è scritto, senza togliere spazi, quindi team non è team. Togli gli spazi dalla colonna con Pulisci dati CSV oppure correggi l’export.

La convalida modifica il mio file?

No. Si limita a leggere il file e a segnalare ciò che trova. I problemi vanno corretti nell’editor o nel sistema di origine.

Posso riusare le stesse regole per ogni export mensile?

Sì. Salva le regole come file JSON Table Schema e caricalo la volta successiva; le regole vengono abbinate alle colonne per nome.

Standard e riferimenti