Tabella CSV (.csv)

RFC Standard

Comma-Separated Values (CSV) è un formato di testo semplice molto diffuso per dati tabulari, in cui ogni riga rappresenta un record e i campi sono separati da caratteri delimitatori.

Converti da XLSX a CSV

Convertitore gratuito da XLSX a CSV nel browser. Converti i file istantaneamente sul tuo dispositivo.

Comprimi CSV online

Privato - i file non lasciano mai il tuo dispositivo

Ispezione e metadati

I sistemi operativi e gli analizzatori di file identificano i file CSV ispezionando la sequenza di byte binari iniziale:

Seleziona o rilascia i file qui

Privato - i file non lasciano mai il tuo dispositivo

o incolla Ctrl+V
Garanzia di privacy con zero trasmissioni di rete: 0 byte caricati su server esterni. Tutta l'elaborazione è avvenuta localmente nella sandbox del tuo browser.

Firma dell'intestazione a livello di byte (Magic Bytes)

I sistemi operativi e gli analizzatori di file identificano i file CSV ispezionando la sequenza di byte binari iniziale:

FIRMA ESADECIMALE (OFFSET 0):

Nessuna firma fissa

RAPPRESENTAZIONE ASCII: Byte di testo; codifica variabile, spesso UTF-8

Standardizzazione: RFC 4180 / IETF

Specifiche tecniche

Architettura del contenitoreFile di testo semplice delimitato che rappresenta dati in righe e colonne
CompressioneGzip / Deflate ottengono una compressione dell'85%-95% su record tabulari ripetitivi
Endianness dei byteFlusso di testo UTF-8 (BOM UTF-8 facoltativo EF BB BF, usato da Excel)
Spazi coloreNon applicabile
Canali e strutturaRecord di riga delimitati da CRLF con colonne delimitate da virgole
Dimensioni massimeIllimitato; elaborabile in streaming fino a diversi gigabyte senza caricare l'intero file in memoria
TrasparenzaNon applicabile
Streaming e progressivoElaborazione nativa in streaming riga per riga supportata da tutte le pipeline di dati

Matrice di confronto tecnico: CSV vs Concorrenti

Attributo tecnicoCSV (Attuale)Excel (XLSX)ParquetJSON
Tipo di fileTabella semplice in testoFoglio di calcolo XML compresso in archivioArchiviazione colonnare binariaTesto gerarchico
Fogli multipliNo (solo una tabella semplice)Sì (più cartelle di lavoro e fogli)Archiviazione basata su partizioniArray e oggetti annidati
Tipi di datiTesto grezzo non tipizzatoCelle tipizzate, formule, formattazioneTipi di colonna binari rigorosiTipi primitivi (stringa, numero, booleano)
Analisi dei big dataLenta (richiede la lettura sequenziale di ogni riga)Non adatto ai big dataUltra-veloce (eliminazione colonne e pushdown di predicati)Moderato

Modalità di corruzione comuni e guida al recupero esadecimale

Le colonne si spostano a destra o il conteggio delle righe non corrisponde.

Causa principale: Un campo di testo contenente una virgola non preceduta da un carattere di escape e privo di virgolette.

Ripristino: La RFC 4180 richiede che i campi contenenti virgole siano racchiusi tra virgolette doppie: "Smith, John".

In Excel i caratteri accentati appaiono alterati (mojibake, ad esempio é al posto di é).

Causa principale: Excel ha aperto un CSV UTF-8 assumendo la codifica dei caratteri Windows ANSI/CP1252 legacy.

Ripristino: Anteporre al file il Byte Order Mark (BOM) UTF-8 di 3 byte (0xEF 0xBB 0xBF).

Analisi di sicurezza e vettori di attacco del parser

I file CSV si aprono direttamente in software per fogli di calcolo come Excel e Google Fogli, esponendo gli utenti ad attacchi di iniezione di formule (Iniezione CSV).

Vettori di attacco noti

  • Iniezione di formule: celle che iniziano con '=', '+', '-' o '@' ed eseguono macro dei fogli di calcolo o comandi DDE (ad es. '=cmd|' /C calc'!A0').
  • Esfiltrazione di dati tramite formule HYPERLINK() che inviano dati sensibili delle celle a server remoti dell'attaccante al clic.

Migliori pratiche difensive: Durante l'esportazione di dati utente in CSV, anteporre un apice singolo (') o una tabulazione a qualsiasi cella che inizia con '=', '+', '-' o '@' per forzare la visualizzazione come testo semplice in Excel.

Origini storiche e tappe fondamentali

2015Il modello W3C per i dati tabulari e i metadati sul Web definisce lo standard CSV on the Web (CSVW) con descrittori di metadati JSON-LD.
2005L'IETF pubblica la RFC 4180, stabilendo la specifica formale per i file CSV.
1972Il compilatore IBM Fortran (H Extended) implementa l'input/output delimitato da virgole.

Vantaggi principali

  • Massima semplicità: leggibile in qualsiasi editor di testo e importabile in qualsiasi database e foglio di calcolo.
  • Streaming riga per riga estremamente veloce senza costruire un DOM completo in memoria.
  • Sovraccarico minimo: nessuna sintassi di tag prolissa né definizioni di schema.

Limiti tecnici e svantaggi

  • Nessun tipo di dato standard: numeri, date, booleani e testo sono tutti memorizzati come stringhe grezze.
  • Nessun supporto per fogli multipli, formattazione delle celle, formule o metadati.
  • I conflitti tra delimitatori (virgole all'interno del testo, virgole decimali nelle impostazioni locali europee) causano frequenti errori di analisi.

Curiosità tecniche

  • In molti paesi europei in cui le virgole vengono usate come separatori decimali, i punti e virgola (;) vengono utilizzati al posto delle virgole come separatori CSV.
  • Storicamente Microsoft Excel richiedeva un BOM UTF-8 (0xEF 0xBB 0xBF) per visualizzare correttamente i caratteri accentati non-ASCII.
  • Il Servizio Sanitario Nazionale del Regno Unito è diventato tristemente famoso nel 2020 per aver perso quasi 16.000 record di tracciamento dei contatti COVID-19, importati in un formato di foglio di calcolo Excel obsoleto che limitava il numero di righe a 65.536.

Domande tecniche frequenti

Cos'è la RFC 4180?

La RFC 4180 è lo standard IETF ufficiale per i file CSV. Impone che i campi contenenti virgole, interruzioni di riga o virgolette doppie debbano essere racchiusi tra virgolette doppie e che le virgolette interne debbano essere sottoposte a escape raddoppiandole ("").

Perché i file CSV si aprono con caratteri corrotti in Excel?

Le versioni precedenti di Microsoft Excel utilizzano per impostazione predefinita la pagina di codice Windows locale (come Windows-1252) anziché UTF-8 quando aprono direttamente i file CSV. L'aggiunta di un BOM UTF-8 (Byte Order Mark) all'inizio del file forza Excel a decodificare correttamente l'UTF-8.

Cos'è l'iniezione CSV (iniezione di formule)?

L'iniezione CSV si verifica quando input utente non attendibili contenenti caratteri iniziali che attivano le formule ('=', '+', '-', '@') vengono esportati in un file di foglio di calcolo. Quando il file viene aperto in un programma come Excel, il foglio di calcolo esegue automaticamente la formula o il comando di scambio dinamico di dati (DDE), con il rischio di eseguire comandi di sistema o sottrarre dati.