Tabulka CSV (.csv)
RFC StandardníCSV (Comma-Separated Values) je rozšířený textový formát pro tabulková data, v němž každý řádek představuje jeden datový záznam a pole jsou oddělena oddělovacími znaky.
Převést XLSX na CSV
Bezplatný konvertor z XLSX do CSV v prohlížeči. Převeďte soubory okamžitě ve svém zařízení.
Komprese CSV online
Soukromě - soubory nikdy neopustí vaše zařízení
Kontrola a metadata
Operační systémy a analyzátory souborů identifikují soubory CSV kontrolou počáteční binární sekvence bajtů:
Podpis hlavičky na úrovni bajtů (Magic Bytes)
Operační systémy a analyzátory souborů identifikují soubory CSV kontrolou počáteční binární sekvence bajtů:
HEXADECIMÁLNÍ PODPIS (POSUN 0):
Bez pevného podpisuASCII REPREZENTACE: Textové bajty; kódování se může lišit
Standardizace: RFC 4180 / IETF
Technické specifikace
| Architektura kontejneru | Textový soubor s oddělovači představující řádky a sloupce tabulkových dat |
| Komprese | Gzip a Deflate mohou komprimovat opakující se text; výsledná velikost závisí na datech a nastavení |
| Pořadí bajtů | Datový proud UTF-8 (volitelně UTF-8 BOM EF BB BF používaný v aplikaci Excel) |
| Barevné prostory | Nevztahuje se |
| Kanály a struktura | Řádkové záznamy oddělené pomocí CRLF, jejichž sloupce jsou oddělené čárkami |
| Max. rozměry | Neomezeno; možnost streamování v řádu gigabajtů bez načtení celého souboru do paměti |
| Průhlednost | Nevztahuje se |
| Streamování a progresivní načítání | Nativní řádkové zpracování proudu podporované všemi datovými kanály |
Technická srovnávací matice: CSV vs konkurence
| Technický atribut | CSV (Aktuální) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Typ souboru | Plochá tabulka v prostém textu | Zabalená tabulka XML | Binární sloupcové úložiště | Hierarchický text |
| Více listů | Ne (pouze jedna plochá tabulka) | Ano (více sešitů a listů) | Úložiště založené na oddílech | Vnořená pole a objekty |
| Datové typy | Netypovaný surový text | Typované buňky, vzorce, formátování | Přísné binární typy sloupců | Primitivní typy (řetězec, číslo, pravdivostní hodnota) |
| Analytika velkých dat | Pomalé (vyžaduje lineární čtení každého řádku) | Nevhodné pro velká data | Ultra rychlé (vyřezávání sloupců a předávání predikátů) | Mírné |
Běžné režimy poškození a příručka pro obnovení v hex
Sloupce se posouvají doprava nebo nesouhlasí počty řádků.
Hlavní příčina: Textové pole obsahující neuniklou čárku bez okolních uvozovek.
Obnovení: RFC 4180 vyžaduje, aby pole obsahující čárky byla uzavřena v dvojitých uvozovkách: „Smith, John“.
Znaky s diakritikou se v Excelu vykreslují jako podivné symboly (mojibake jako é namísto é).
Hlavní příčina: Excel otevřel soubor CSV v kódování UTF-8 v domnění, že jde o starší znakovou sadu Windows ANSI/CP1252.
Obnovení: Na začátek souboru vložte 3bajtovou značku pořadí bajtů UTF-8 (0xEF 0xBB 0xBF).
Bezpečnostní analýza a vektory útoků na parser
Soubory CSV se otevírají přímo v tabulkových procesorech, jako je Excel a Google Sheets, což uživatele vystavuje útokům typu injektáž vzorců (CSV Injection).
Známé vektory útoků
- Injektáž vzorců: Buňky začínající znakem „=", „+", „-" nebo „@", které spouštějí makra tabulkového procesoru nebo příkazy DDE (např. „=cmd|' /C calc'!A0").
- Exfiltrace dat pomocí vzorců HYPERLINK(), které po kliknutí odesílají citlivá data buněk na servery vzdáleného útočníka.
Doporučené bezpečnostní postupy: Při exportu uživatelských dat do formátu CSV přidejte na začátek každé buňky začínající znakem „=", „+", „-" nebo „@" jednoduchou uvozovku (') nebo tabelátor, abyste v Excelu vynutili vykreslení jako prostý text.
Historický vývoj a milníky
Klíčové výhody a přednosti
- Maximální jednoduchost: čitelné v libovolném textovém editoru a importovatelné do každé databáze a tabulkového kalkulátoru.
- Extrémně rychlé řádkové streamování bez vytváření úplného modelu DOM v paměti.
- Minimální režie: žádná zbytečně rozvláčná syntaxe značek ani definice schémat.
Technická omezení a nevýhody
- Žádné standardní datové typy: čísla, data, pravdivostní hodnoty a text jsou uloženy jako surové řetězce.
- Žádná podpora pro vícenásobné listy, formátování buněk, vzorce nebo metadata.
- Konflikty oddělovačů (čárky uvnitř textu, desetinné čárky v evropských národních prostředích) způsobují časté chyby parsování.
Zajímavé technické drobnosti
- V mnoha evropských zemích, kde se čárky používají jako desetinný oddělovač, se místo čárek používají jako oddělovače CSV středníky (;).
- Aplikace Microsoft Excel historicky vyžadovala značku UTF-8 BOM (0xEF 0xBB 0xBF) pro správné zobrazení ne-ASCII znaků s diakritikou.
- Britská národní zdravotní služba (NHS) v roce 2020 proslule ztratila téměř 16 000 záznamů o trasování kontaktů na covid-19, protože data byla importována do zastaralého formátu tabulkového procesoru Excel, který omezoval maximální počet řádků na 65 536.
Často kladené technické otázky
Co je to RFC 4180?
RFC 4180 je oficiální standard IETF pro formát CSV. Stanovuje, že pole obsahující čárky, zalomení řádků nebo dvojité uvozovky musí být uzavřena v dvojitých uvozovkách a vnitřní uvozovky musí být zaznamenány zdvojením ("").
Proč se soubory CSV otevírají v Excelu s poškozenými znaky?
Starší verze aplikace Microsoft Excel používají při přímém otevírání souborů CSV ve výchozím nastavení místní kódovou stránku Windows (např. Windows-1252) namísto UTF-8. Přidání značky BOM (Byte Order Mark) UTF-8 na začátek souboru přiměje Excel správně dekódovat UTF-8.
Co je to CSV Injection (Injektáž vzorců)?
Injektáž CSV nastává, když jsou do souboru tabulkového procesoru exportována nedůvěryhodná uživatelská data obsahující spouštěče vzorců na začátku („=", „+", „-", „@"). Při otevření v softwaru, jako je Excel, tabulkový procesor automaticky spustí vzorec nebo příkaz dynamické výměny dat (DDE), což může potenciálně spustit systémové příkazy nebo exfiltrovat data.
Související konverzní páry pro CSV
Převod tabulky z Excelu do formátu CSV převede nezpracovaná tabulková data do univerzálního textového formátu, který je kompatibilní s širokou škálou softwaru.
Převod jednoduchých textových souborů CSV do tabulek XLSX s pokročilými funkcemi umožňuje formátovat data, používat vzorce a pracovat s více listy.
Převod plochých textových souborů na strukturované relační databáze umožňuje spouštět rychlé dotazy a spravovat složité datové vztahy.
Převeďte záložní skripty relačních databází na ploché tabulkové soubory pro jednoduchou analýzu dat a vytváření sestav.
Konverze hierarchických datových sad HDF5 na ploché telemetrické soubory CSV transformuje složité vícerozměrné vědecké záznamy na jednoduché řádky a sloupce pro analýzu v tabulkových procesorech.
Konverze vícerozměrných vědeckých mřížek NetCDF na ploché telemetrické soubory CSV činí složitá klimatická a oceánská data čitelnými v základním tabulkovém softwaru.
Konverze souborů vCard na CSV kontaktů transformuje hierarchické kontaktní karty na řádky v tabulce pro snadný import do databáze.