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ů:

Vyberte nebo přetáhněte soubory sem

Soukromě - soubory nikdy neopustí vaše zařízení

nebo vložte Ctrl+V
Záruka ochrany soukromí s nulovým přenosem po síti: 0 bajtů odesláno na externí servery. Veškeré zpracování probíhalo lokálně v sandboxu vašeho prohlížeče.

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 podpisu

ASCII REPREZENTACE: Textové bajty; kódování se může lišit

Standardizace: RFC 4180 / IETF

Technické specifikace

Architektura kontejneruTextový soubor s oddělovači představující řádky a sloupce tabulkových dat
KompreseGzip 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é prostoryNevztahuje se
Kanály a strukturaŘádkové záznamy oddělené pomocí CRLF, jejichž sloupce jsou oddělené čárkami
Max. rozměryNeomezeno; možnost streamování v řádu gigabajtů bez načtení celého souboru do paměti
PrůhlednostNevztahuje 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ý atributCSV (Aktuální)Excel (XLSX)ParquetJSON
Typ souboruPlochá tabulka v prostém textuZabalená tabulka XMLBiná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ílechVnořená pole a objekty
Datové typyNetypovaný surový textTypované buňky, vzorce, formátováníPřísné binární typy sloupcůPrimitivní typy (řetězec, číslo, pravdivostní hodnota)
Analytika velkých datPomalé (vyžaduje lineární čtení každého řádku)Nevhodné pro velká dataUltra 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

2015W3C Model for Tabular Data and Metadata on the Web standardizuje formát CSV na webu (CSVW) s metadatovými deskriptory JSON-LD.
2005IETF publikuje RFC 4180, čímž stanovuje formální specifikaci pro soubory CSV.
1972Kompilátor IBM Fortran (H Extended) implementuje vstup a výstup oddělený čárkami.

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.