CSV cu contacte (.csv)
RFC StandardComma-Separated Values (CSV) este un format omniprezent de text simplu pentru date tabelare, în care fiecare linie reprezintă o înregistrare, iar câmpurile sunt separate prin caractere delimitatoare.
Convertește din XLSX în CSV
Convertor gratuit din XLSX în CSV direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.
Comprimă CSV online
Privat - fișierele nu părăsesc niciodată dispozitivul tău
Inspectare și metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele CSV prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (octeți magici)
Sistemele de operare și analizatoarele de fișiere identifică fișierele CSV prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):
Fără semnătură fixăREPREZENTARE ASCII: Octeți text; codificarea variază (cel mai adesea UTF-8)
Standardizare: RFC 4180 / IETF
Specificații tehnice
| Arhitectură container | Fișier text plat cu delimitatori, care reprezintă rânduri și coloane de date tabelare |
| Compresie | Gzip și Deflate pot comprima textul repetitiv; dimensiunea rezultatului depinde de date și setări |
| Ordinea octeților | Flux text UTF-8 (BOM UTF-8 opțional EF BB BF, folosit de Excel) |
| Spații de culoare | Nu se aplică |
| Canale și structură | Înregistrări delimitate prin CRLF, cu coloane separate prin virgule |
| Dimensiuni maxime | Nelimitat; poate fi transmis în flux până la dimensiuni de gigaocteți fără a încărca întregul fișier în memorie |
| Transparență | Nu se aplică |
| Streaming și progresiv | Procesarea nativă în flux, linie cu linie, este acceptată de toate conductele de date |
Matrice de comparație tehnică: CSV vs. concurenți
| Atribut tehnic | CSV (Curent) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Tip de fișier | Tabel plat text simplu | Foaie de calcul XML comprimată | Stocare binară pe coloane | Text ierarhic |
| Foi multiple | Nu (doar un singur tabel plat) | Da (mai multe registre de lucru și foi) | Stocare bazată pe partiții | Tablouri și obiecte imbricate |
| Tipuri de date | Text brut netipat | Celule tipizate, formule, formatare | Tipuri stricte de coloane binare | Tipuri primitive (șir, număr, valoare booleană) |
| Analiză Big Data | Lent (necesită citirea secvențială a fiecărui rând) | Nepotrivit pentru volume mari de date | Ultra-rapid (eliminarea coloanelor irelevante și împingerea predicatelor) | Moderat |
Moduri comune de corupție și ghid de recuperare hexazecimală
Coloanele se deplasează spre dreapta sau numărul de rânduri nu se potrivește.
Cauză principală: Un câmp text care conține o virgulă neprotejată și nu este încadrat între ghilimele.
Recuperare: RFC 4180 solicită ca câmpurile care conțin virgule să fie încadrate în ghilimele duble: "Smith, John".
Caracterele accentuate apar ca simboluri ciudate (mojibake cum ar fi é în loc de é) în Excel.
Cauză principală: Excel a deschis un CSV UTF-8 presupunând codificarea de caractere Windows ANSI/CP1252 moștenită.
Recuperare: Adaugă la începutul fișierului marcajul UTF-8 de ordine a octeților, format din 3 octeți (0xEF 0xBB 0xBF).
Analiză de securitate și vectori de atac asupra parserului
Fișierele CSV se deschid direct în software-ul de foi de calcul precum Excel și Google Sheets, expunând utilizatorii la atacuri de injectare a formulelor (injectare CSV).
Vectori de atac cunoscuți
- Injecția de formule: celulele care încep cu „=”, „+”, „-” sau „@” pot executa macrocomenzi de foaie de calcul ori comenzi DDE (de exemplu, „=cmd|'/C calc'!A0”).
- Exfiltrare de date prin formule HYPERLINK() care trimit date sensibile din celule către servere de la distanță ale atacatorului la clic.
Cele mai bune practici de securitate: Când exporți datele utilizatorilor în CSV, adaugă un apostrof (') sau un tabulator înaintea fiecărei celule care începe cu „=”, „+”, „-” sau „@” pentru ca Excel să o afișeze ca text simplu.
Origini istorice și repere
Avantaje cheie și beneficii
- Simplitate maximă: fișierele pot fi citite în orice editor de text și importate în orice bază de date sau foaie de calcul.
- Transmitere în flux foarte rapidă, linie cu linie, fără construirea unui DOM complet în memorie.
- Suprasarcină minimă: fără sintaxă elaborată pentru etichete sau definiții de schemă.
Limitări tehnice și dezavantaje
- Fără tipuri de date standard: numerele, datele calendaristice, valorile booleene și textul sunt stocate ca șiruri brute.
- Fără suport pentru foi multiple, formatare de celule, formule sau metadate.
- Conflictele de delimitatori (virgule în interiorul textului, virgule zecimale în localele europene) cauzează frecvent erori de analiză sintactică.
Curiozități tehnice interesante
- În multe țări europene unde virgulele sunt folosite ca puncte zecimale, punctul și virgula (;) este folosită în locul virgulei ca separator CSV.
- Microsoft Excel a necesitat istoric un BOM UTF-8 (0xEF 0xBB 0xBF) pentru a afișa corect caracterele accentuate non-ASCII.
- Serviciul Național de Sănătate din Marea Britanie a pierdut în mod celebru aproape 16.000 de înregistrări de urmărire a contactelor COVID-19 în 2020, deoarece datele au fost importate într-un format de foaie de calcul Excel depășit care limita numărul de rânduri la 65.536.
Întrebări tehnice frecvente
Ce este RFC 4180?
RFC 4180 este standardul oficial IETF pentru CSV. Acesta impune ca câmpurile care conțin virgule, întreruperi de linie sau ghilimele duble să fie incluse între ghilimele duble, iar ghilimelele interne să fie protejate prin dublarea lor ("").
De ce se deschid fișierele CSV cu caractere corupte în Excel?
Versiunile mai vechi de Microsoft Excel folosesc implicit pagina locală de coduri Windows (cum ar fi Windows-1252) în loc de UTF-8 atunci când deschid direct fișierele CSV. Adăugarea unui BOM UTF-8 (Marcaj de Ordine a Byte-ilor) la începutul fișierului forțează Excel să decodifice corect UTF-8.
Ce este injecția CSV (injecția de formule)?
Injecția CSV apare când date nefiabile introduse de utilizator, care încep cu un caracter interpretat ca formulă ('=', '+', '-', '@'), sunt exportate într-un fișier de foaie de calcul. Când fișierul este deschis într-o aplicație precum Excel, aceasta execută automat formula sau comanda de schimb dinamic de date (DDE), ceea ce poate duce la rularea unor comenzi de sistem sau la exfiltrarea datelor.
Perechi de conversie CSV conexe
Conversia unei foi Excel într-un tabel CSV extrage datele tabulare brute într-un format text utilizat pe scară largă și compatibil cu multe programe.
Conversia fișierelor CSV simple bazate pe text în foi de calcul XLSX bogate în caracteristici permite stilizarea avansată a datelor, formule și mai multe foi.
Conversia fișierelor text simple în baze de date relaționale structurate îți permite să rulezi interogări rapide și să gestionezi relații complexe între date.
Transformă scripturile de backup ale bazelor de date relaționale în foi de calcul tabelare plane pentru o analiză simplă a datelor și raportare.
Conversia seturilor de date HDF5 ierarhice în fișiere CSV de telemetrie plate transformă înregistrări științifice complexe multidimensionale în rânduri și coloane simple pentru analiza în foi de calcul.
Conversia grilelor științifice NetCDF multidimensionale în fișiere CSV de telemetrie plate face ca datele climatice și oceanice complexe să poată fi citite în software-ul de foi de calcul de bază.
Conversia fișierelor vCard în CSV pentru contacte transformă fișele de contact ierarhice în rânduri simple de tabel pentru o importare facilă în baze de date.