CSV tabela (.csv)
RFC StandardComma-Separated Values (CSV) je sveprisutni format običnog teksta za tabelarne podatke, gde svaki red predstavlja zapis, a polja su odvojena znakovima za razdvajanje.
Konvertujte XLSX u CSV
Besplatan konvertor XLSX u CSV u pregledaču. Konvertujte datoteke odmah na svom uređaju.
Kompresujte CSV na mreži
Privatno - datoteke nikada ne napuštaju vaš uređaj
Pregled i metapodaci
Operativni sistemi i analizatori datoteka identifikuju CSV datoteke proverom početnog binarnog niza bajtova:
Potpis zaglavlja na nivou bajtova (magični bajtovi)
Operativni sistemi i analizatori datoteka identifikuju CSV datoteke proverom početnog binarnog niza bajtova:
HEKSADECIMALNI POTPIS (OFFSET 0):
Nema fiksnog potpisaASCII REPREZENTACIJA: Tekstualni bajtovi; kodiranje može da varira
Standardizacija: RFC 4180 / IETF
Tehničke specifikacije
| Arhitektura kontejnera | Tekstualna datoteka sa graničnicima koja predstavlja tabelarne redove i kolone sa podacima |
| Kompresija | Gzip i Deflate mogu da komprimuju tekstualne podatke; veličina rezultata zavisi od podataka i podešavanja. |
| Bajtni redosled (Endianness) | UTF-8 tekstualni tok (opcioni UTF-8 BOM EF BB BF koji koristi Excel) |
| Prostori boja | Nije primenjivo |
| Kanali i struktura | Redovi zapisa razdvojeni sa CRLF, a kolone razdvojene zarezima |
| Maksimalne dimenzije | Neograničeno; može se strimovati do gigabajta bez učitavanja celog fajla u memoriju |
| Transparentnost | Nije primenjivo |
| Strimovanje i progresivno učitavanje | Izvorna obrada toka red po red podržana u svim cevovodima za obradu podataka |
Tehnička matrica poređenja: CSV u odnosu na konkurente
| Tehnički atribut | CSV (Trenutno) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Tip fajla | Ravna tabela u običnom tekstu | Komprimovana XML tabela | Binarno kolonsko skladištenje | Hijerarhijski tekst |
| Više tabela | Ne (samo jedna ravna tabela) | Da (više radnih svezaka i listova) | Skladištenje zasnovano na particijama | Ugnježdeni nizovi i objekti |
| Tipovi podataka | Netipizirani sirovi tekst | Tipizirane ćelije, formule, formatiranje | Strogi binarni tipovi kolona | Primitivni tipovi (string, broj, bool) |
| Analitika velikih podataka | Sporo (zahteva linearno čitanje svakog reda) | Nije pogodno za obradu velikih količina podataka | Ultra-brzo (odbacivanje kolona i potiskivanje predikata) | Umereno |
Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak
Kolone se pomeraju udesno ili se broj redova ne podudara.
Osnovni uzrok: Tekstualno polje koje sadrži zarez koji nije eskapiran i nema okolne navodnike.
Oporavak: RFC 4180 zahteva da polja koja sadrže zareze budu obavijena dvostrukim navodnicima: "Prezime, Ime".
Akcentovani karakteri se prikazuju kao čudni simboli (mojibake kao što je é umesto é) u Excel-u.
Osnovni uzrok: Excel je otvorio UTF-8 CSV pretpostavljajući staru Windows ANSI/CP1252 kodnu šemu karaktera.
Oporavak: Dodajte 3-bajtni UTF-8 znak za redosled bajtova (0xEF 0xBB 0xBF) na početak fajla.
Bezbednosna analiza i vektori napada parsera
CSV fajlovi se otvaraju direktno u softveru za tabele kao što su Excel i Google Sheets, izlažući korisnike napadima ubacivanjem formula (CSV Injection).
Poznati vektori napada
- Injekcija formula: Ćelije koje počinju sa '=', '+', '-', ili '@' izvršavaju makroe tabele ili DDE komande (npr. '=cmd|' /C calc'!A0').
- Eksfiltracija podataka putem HYPERLINK() formula koje šalju osetljive podatke iz ćelija na udaljene servere napadača prilikom klika.
Najbolje prakse za zaštitu: Prilikom izvoza korisničkih podataka u CSV, stavite jednostruki navodnik (') ili tabulator ispred bilo koje ćelije koja počinje sa '=', '+', '-', ili '@' da biste primorali prikaz običnog teksta u Excel-u.
Istorijat i prekretnice
Ključne prednosti
- Maksimalna jednostavnost: čitljivo u bilo kom uređivaču teksta i moguće ga je uvesti u svaku bazu podataka i tabelarni program.
- Izuzetno brzo strimovanje red po red bez kreiranja punog DOM-a u memoriji.
- Minimalna režija: bez opširne sintakse tagova ili definicija šema.
Tehnička ograničenja i nedostaci
- Nema standardnih tipova podataka: brojevi, datumi, bulove vrednosti i tekst se skladište kao sirovi stringovi.
- Nema podrške za više tabela, formatiranje ćelija, formule ili meta-podatke.
- Sukobi graničnika (zarezi unutar teksta, decimalni zarezi u evropskim lokalima) izazivaju česte greške u parsiranju.
Zanimljivosti
- U mnogim evropskim zemljama gde se zarezi koriste kao decimale, tačka-zarez (;) se koristi umesto zareza kao CSV separator.
- Microsoft Excel je istorijski zahtevao UTF-8 BOM (0xEF 0xBB 0xBF) za pravilan prikaz akcentovanih karaktera koji nisu ASCII.
- Britanska nacionalna zdravstvena služba je 2020. godine izgubila skoro 16.000 zapisa o praćenju kontakata zbog COVID-19, jer su podaci uvezeni u zastareli format Excel tabele koji je ograničavao broj redova na 65.536.
Često postavljana tehnička pitanja
Šta je RFC 4180?
RFC 4180 je zvanični IETF standard za CSV. On nalaže da polja koja sadrže zareze, prelaze u novi red ili dvostruke navodnike moraju biti zatvorena u dvostruke navodnike, a unutrašnji navodnici se moraju eskapirati njihovim udvostručavanjem ("").
Zašto se CSV fajlovi otvaraju sa iskvarenim karakterima u Excel-u?
Starije verzije Microsoft Excel-a podrazumevano koriste lokalnu Windows kodnu stranicu (poput Windows-1252) umesto UTF-8 kada direktno otvaraju CSV fajlove. Dodavanje UTF-8 BOM-a (Byte Order Mark) na početku fajla primorava Excel da ispravno dekodira UTF-8.
Šta je CSV injekcija (injekcija formula)?
CSV injekcija se dešava kada se korisnički unos kome se ne veruje, a koji sadrži vodeće okidače formula ('=', '+', '-', '@'), izveze u tabelarni fajl. Kada se otvori u softveru kao što je Excel, tabela automatski izvršava formulu ili komandu dinamičke razmene podataka (DDE), potencijalno pokrećući sistemske komande ili eksfiltrirajući podatke.
Povezani parovi konverzije za CSV
Konvertovanje Excel tabele u CSV format izdvaja sirove tabelarne podatke u univerzalni tekstualni format radi maksimalne kompatibilnosti sa softverom.
Konvertovanje jednostavnih tekstualnih CSV datoteka u XLSX tabele bogate funkcijama omogućava napredno stilizovanje podataka, formule i više listova.
Konverzija ravnih tekstualnih datoteka u strukturisane relacione baze podataka omogućava vam da pokrećete brze upite i upravljate složenim odnosima podataka.
Pretvorite skripte rezervnih kopija relacionih baza podataka u tabelarne datoteke radi jednostavne analize podataka i izveštavanja.
Konverzija hijerarhijskih HDF5 skupova podataka u ravne telemetrijske CSV datoteke pretvara složene višedimenzionalne naučne zapise u jednostavne redove i kolone radi analize u tabelama.
Konverzija višedimenzionalnih NetCDF naučnih mreža u ravne telemetrijske CSV datoteke čini složene podatke o klimi i okeanima čitljivim u osnovnom softveru za tabele.
Konvertovanje VCF datoteka u CSV kontakte transformiše hijerarhijske kontakt kartice u ravne redove tabele radi lakšeg uvoza u bazu podataka.