Névjegyek CSV-formátumban (.csv)

RFC Szabvány

A Comma-Separated Values (CSV) széles körben használt, egyszerű szöveges formátum táblázatos adatokhoz; minden sora egy adatrekordot képvisel, a mezőket pedig elválasztó karakterek választják el.

XLSX konvertálása erre: CSV

Ingyenes, böngészőben használható XLSX-konverter CSV formátumba. A fájlokat azonnal konvertálhatja az eszközén.

CSV tömörítése online

Privát - a fájlok soha nem hagyják el az eszközét

Vizsgálat és metaadatok

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) CSV fájlokat:

Válasszon ki vagy húzzon ide fájlokat

Privát - a fájlok soha nem hagyják el az eszközét

vagy beillesztés Ctrl+V
Adatvédelmi garancia hálózati adatátvitel nélkül: 0 bájt került fel külső szerverekre. Minden feldolgozás helyben, a böngésző elkülönített környezetében történt.

Bájtszintű fejlécaláírás (fájlazonosító bájtok)

Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) CSV fájlokat:

HEX ALÁÍRÁS (ELTOLÁS 0):

Nincs rögzített aláírás

ASCII ÁBRÁZOLÁS: Szöveges bájtok; a kódolás változhat

Szabványosítás: RFC 4180 / IETF

Műszaki specifikációk

Konténer architektúraHatárolójelekkel elválasztott, sima szöveges fájl, amely táblázatos adatsorokat és oszlopokat ábrázol
TömörítésA Gzip és a Deflate tömörítheti az ismétlődő szöveget; az eredményül kapott méret az adatoktól és a beállításoktól függ.
BájtsorrendUTF-8 szöveges adatfolyam (az Excel által használt opcionális UTF-8 BOM EF BB BF)
SzínterekNem alkalmazható
Csatornák és struktúraCRLF-del elválasztott sorrekordok, vesszőkkel elválasztott oszlopokkal
Max. méretekKorlátlan; gigabájtos méretig adatfolyamként feldolgozható anélkül, hogy az egész fájlt be kellene tölteni a memóriába
ÁtlátszóságNem alkalmazható
Streaming és progresszívA natív soronkénti adatfolyam-feldolgozást minden adatfolyamat támogatja

Műszaki összehasonlító mátrix: CSV vs. versenytársak

Technikai attribútumCSV (Jelenlegi)Excel (XLSX)ParquetJSON
FájltípusSima szöveges, lapos táblaTömörített XML táblázatBináris oszlopalapú tárolásHierarchikus szöveg
Több munkalapNincs (csak egyetlen lapos tábla)Igen (több munkafüzet és munkalap)Partícióalapú tárolásBeágyazott tömbök és objektumok
AdattípusokTípus nélküli nyers szövegTípusos cellák, képletek, formázásSzigorú bináris oszloptípusokPrimitív típusok (szöveg, szám, logikai)
Nagy adatmennyiség elemzéseLassú (minden sort lineárisan kell olvasni)Nem alkalmas nagy adatokhozUltragyors (oszlopok elhagyása és predikátumok leküldése)Mérsékelt

Gyakori sérülési módok és hexadecimális helyreállítási útmutató

Az oszlopok jobbra tolódnak, vagy nem egyezik a sorok száma.

Kiváltó ok: Egy idézőjelek nélküli szövegmező, amely egy nem escape-elt vesszőt tartalmaz.

Helyreállítás: Az RFC 4180 előírja, hogy a vesszőket tartalmazó mezőket kettős idézőjelek közé kell zárni: "Smith, John".

Az ékezetes karakterek furcsa szimbólumokként (mojibake, például é helyett é) jelennek meg az Excelben.

Kiváltó ok: Az Excel egy UTF-8 CSV-fájlt nyitott meg, a régi Windows ANSI/CP1252 karakterkódolást feltételezve.

Helyreállítás: Illessze be a 3 bájtos UTF-8 bájtsorrend-jelölőt (0xEF 0xBB 0xBF) a fájl elejére.

Biztonsági elemzés és elemző (parser) támadási vektorok

A CSV-fájlok közvetlenül megnyithatók az olyan táblázatkezelő szoftverekben, mint az Excel és a Google Sheets, így a felhasználók ki vannak téve a képletinjekciós (CSV-injekció) támadásoknak.

Ismert támadási vektorok

  • Képletinjekció: Az '=', '+', '-' vagy '@' karakterrel kezdődő cellák táblázatkezelő makrókat vagy DDE-parancsokat hajtanak végre (pl. '=cmd|' /C calc'!A0').
  • Adatszivárgás HYPERLINK() képleteken keresztül, amelyek kattintáskor érzékeny cellaadatokat küldenek a távoli támadó szervereinek.

Ajánlott védekezési módszerek: Amikor felhasználói adatokat exportál CSV-be, illesszen be egy egyszeres idézőjelet (') vagy tabulátort minden '=', '+', '-' vagy '@' jellel kezdődő cella elé, hogy az Excelben sima szöveges megjelenítést kényszerítsen ki.

Történeti háttér és mérföldkövek

2015A W3C Model for Tabular Data and Metadata on the Web szabványosítja a CSV on the Web (CSVW) formátumot JSON-LD metaadat-leírókkal.
2005Az IETF kiadja az RFC 4180-at, megalapozva a CSV-fájlok hivatalos specifikációját.
1972Az IBM Fortran (H Extended) fordítóprogramja megvalósítja a vesszővel elválasztott bemenetet/kimenetet.

Főbb előnyök

  • Maximális egyszerűség: bármilyen szövegszerkesztőben olvasható, és minden adatbázisba és táblázatkezelőbe importálható.
  • Rendkívül gyors soronkénti adatfolyam-feldolgozás teljes memóriabeli DOM építése nélkül.
  • Minimális többletterhelés: nincsenek bőbeszédű címkeszintaxisok vagy sémameghatározások.

Technikai korlátok és hátrányok

  • Nincsenek szabványos adattípusok: a számok, dátumok, logikai értékek és a szöveg nyers karakterláncként tárolódnak.
  • Nincs támogatás több munkalaphoz, cellaformázáshoz, képletekhez vagy metaadatokhoz.
  • A határolójelekkel kapcsolatos ütközések (szövegen belüli vesszők, tizedesvesszők az európai területi beállításokban) gyakori elemzési hibákat okoznak.

Érdekes technikai tudnivalók

  • Számos európai országban, ahol a vesszőt tizedesjelként használják, a CSV-elválasztóként a vessző helyett pontosvesszőt (;) használnak.
  • A Microsoft Excel történelmileg egy UTF-8 BOM-ot (0xEF 0xBB 0xBF) igényelt a nem ASCII ékezetes karakterek helyes megjelenítéséhez.
  • Az Egyesült Királyság Nemzeti Egészségügyi Szolgálata (NHS) híres módon csaknem 16 000 COVID-19 kontaktkövetési rekordot veszített el 2020-ban, mert az adatokat egy elavult Excel táblázatkezelő formátumba importálták, amely a sorok határát 65 536-ban korlátozta.

Gyakran Ismételt Műszaki Kérdések

Mi az az RFC 4180?

Az RFC 4180 a CSV hivatalos IETF-szabványa. Előírja, hogy a vesszőt, sortörést vagy kettős idézőjelet tartalmazó mezőket kettős idézőjelek közé kell tenni, a mezőn belüli idézőjeleket pedig meg kell kettőzni ("").

Miért nyílnak meg hibás karakterekkel a CSV-fájlok az Excelben?

A Microsoft Excel régebbi verziói alapértelmezés szerint a helyi Windows kódlapot (például Windows-1252) használják az UTF-8 helyett, amikor közvetlenül nyitnak meg CSV-fájlokat. Ha UTF-8 BOM-ot (bájtsorrend-jelölőt) ad hozzá a fájl elejére, az arra kényszeríti az Excelt, hogy helyesen dekódolja az UTF-8-at.

Mi az a CSV-injekció (képletinjekció)?

A CSV-injekció akkor fordul elő, amikor nem megbízható, képletindítókat ('=', '+', '-', '@') tartalmazó felhasználói bemenetet exportálnak egy táblázatkezelő fájlba. Olyan szoftverekben megnyitva, mint az Excel, a táblázatkezelő automatikusan végrehajtja a képletet vagy a dinamikus adatcsere (DDE) parancsot, ami potenciálisan rendszerparancsokat futtathat vagy adatokat szivárogtathat ki.