Formátování CSV (Comma-Separated Values) je proces normalizace nezpracovaného tabulkového textu tak, aby oddělovače, uvozování, mezery a konce řádků dodržovaly konzistentní sadu pravidel. RFC 4180, publikovaný v roce 2005, definuje nejrozšířenější standard CSV: pole oddělená čárkami, záznamy ukončené sekvencí CRLF a každé pole obsahující čárku, dvojité uvozovky nebo nový řádek zabalené do dvojitých uvozovek. CSV formatter vezme neuspořádaná nebo nekonzistentní CSV data a přepíše je tak, aby odpovídala těmto konvencím.
Skutečné CSV soubory zřídka přicházejí v čisté podobě. Exporty z Excelu, Google Sheets a nástrojů pro dump databází uplatňují různé strategie uvozování, nakládají s mezerami odlišně a mohou používat středníky nebo tabulátory místo čárek. Když tyto soubory předáte parseru, který očekává přísný vstup dle RFC 4180, výsledkem jsou obvykle rozbité řádky, posunuté sloupce nebo tichá ztráta dat. Formátování před zpracováním odhalí tyto problémy včas.
CSV formatter se liší od CSV konvertoru. Formátování ponechává data v CSV. Normalizuje uvozování, ořezává zbytečné mezery, zarovnává sloupce a volitelně přepíná oddělovač. Konverze mění formát zcela — vytváří výstup ve formátu JSON, HTML, SQL nebo Markdown.
Proč používat tento CSV Formatter?
Tento nástroj parsuje a znovu serializuje vaše CSV zcela v prohlížeči. Vaše data nikdy neopustí váš počítač.
⚡
Okamžité formátování
Vložte CSV a ihned uvidíte vyčištěný výstup. Formatter parsuje a znovu serializuje v prohlížeči při psaní.
🔒
Zpracování s důrazem na soukromí
Veškeré parsování a formátování probíhá ve vaší záložce prohlížeče. Žádná data nejsou přenášena přes síť. Bezpečné pro proprietární datové sady, přihlašovací údaje a PII, které nesmí opustit váš počítač.
🔧
Konfigurovatelné oddělovače
Přepínejte mezi oddělovači čárka, tabulátor, středník a svislá čára. Nástroj automaticky detekuje vstupní oddělovač a umožňuje zvolit jiný pro výstup, čímž usnadňuje normalizaci mezi formáty.
📋
Kopírování a stažení jedním kliknutím
Zkopírujte naformátované CSV do schránky nebo jej stáhněte jako soubor. Připraveno k importu do databází, tabulek nebo datových pipeline bez dalších úprav.
Případy použití CSV Formatteru
Frontend vývoj
Vyčistěte CSV fixture soubory používané jako mock data v komponentách React nebo Vue. Konzistentní uvozování zabraňuje chybám parsování během sestavení projektu.
Příjem dat na backendu
Normalizujte CSV exporty z API třetích stran před jejich předáním do vaší ETL pipeline. Ořezání mezer a standardizace oddělovačů zabraňuje chybám způsobeným posunutím sloupců.
DevOps a CI/CD
Formátujte CSV konfigurační soubory nebo seed data evidovaná ve správě verzí. Konzistentní formátování snižuje zbytečný diff šum a urychluje code review.
QA a testování
Připravte CSV testovací fixtures se známými vzory uvozování a oddělovačů. Reprodukovatelné vstupní soubory usnadňují psaní asercí vůči výstupu parseru.
Datové inženýrství
Předzpracujte CSV dumpy ze starších databází před jejich načtením do moderních datových skladů. Oprava problémů s uvozováním a neshodami oddělovačů ušetří hodiny ladění.
Výuka a vzdělávání
Experimentujte s pravidly uvozování dle RFC 4180 vkládáním různých vstupů a sledováním, jak je formatter normalizuje. Praktický způsob, jak porozumět hraničním případům CSV.
Pravidla uvozování a escapování v CSV (RFC 4180)
RFC 4180 definuje konkrétní pravidla pro to, kdy a jak musí být pole uvozována. Šest scénářů níže pokrývá případy, kdy na chování uvozování záleží.
Scénář
Příklad
Pravidlo
Field contains delimiter
name,"Smith, Jr."
Wrap in double quotes
Field contains newline
"line1\nline2"
Wrap in double quotes
Field contains double quote
"She said ""hello"""
Double the quote character
Field is empty
,,
Two consecutive delimiters
Field has leading spaces
" value"
Quotes preserve whitespace
Field is numeric
42
No quotes required unless forced
Porovnání oddělovačů CSV
Volba oddělovače ovlivňuje kompatibilitu, čitelnost a to, jak často budete potřebovat uvozovaná pole.
Čárka (,)
Výchozí hodnota dle RFC 4180. Podporována každým CSV parserem a tabulkovým procesorem. Vyžaduje uvozování, pokud hodnoty polí obsahují čárky, což je běžné u adresních a textových dat.
Tabulátor (\t)
Používán v souborech TSV (Tab-Separated Values). Znaky tabulátoru se v datech polí vyskytují zřídka, takže uvozování je potřeba jen výjimečně. Běžné v bioinformatice a databázových exportech.
Středník (;)
Standard v CSV exportech pro evropská prostředí (Německo, Francie, Brazílie), kde se čárka používá jako oddělovač desetinných míst. Excel používá středníky, když systémové prostředí používá desetinné čárky.
Svislá čára (|)
V přirozeném textu vzácná, což z ní dělá dobrou volbu pro neuspořádaná data, kde se v hodnotách polí vyskytují čárky a středníky. Běžná v exportech ze sálových počítačů a starších systémů.
Příklady kódu
Tyto příklady ukazují, jak parsovat neuspořádaná CSV data a znovu je serializovat s konzistentním formátováním v různých jazycích. Každý úryvek zpracovává ořezání mezer, normalizaci oddělovačů a uvozování.
JavaScript (Node.js)
import { parse, unparse } from 'papaparse'
const messy = `name, age ,city
Alice , 30, Berlin
Bob,25 , " Tokyo "`
// Parse with trimming, then re-serialize with consistent formatting
const parsed = parse(messy, {
header: true,
skipEmptyLines: true,
transformHeader: h => h.trim(),
transform: v => v.trim(),
})
const clean = unparse(parsed.data, { quotes: true })
console.log(clean)
// → "name","age","city"
// → "Alice","30","Berlin"
// → "Bob","25","Tokyo"
Python
import csv
import io
messy = """name, age ,city
Alice , 30, Berlin
Bob,25 , " Tokyo " """
reader = csv.DictReader(io.StringIO(messy), skipinitialspace=True)
output = io.StringIO()
writer = csv.DictWriter(
output,
fieldnames=[f.strip() for f in reader.fieldnames],
quoting=csv.QUOTE_ALL,
)
writer.writeheader()
for row in reader:
writer.writerow({k.strip(): v.strip() for k, v in row.items()})
print(output.getvalue())
# → "name","age","city"
# → "Alice","30","Berlin"
# → "Bob","25","Tokyo"
Go
package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
r := csv.NewReader(strings.NewReader(input))
records, _ := r.ReadAll()
var buf strings.Builder
w := csv.NewWriter(&buf)
w.UseCRLF = true // RFC 4180 line endings
for _, record := range records {
_ = w.Write(record)
}
w.Flush()
fmt.Print(buf.String())
// → name,age,city\r\n
// → Alice,30,Berlin\r\n
// → Bob,25,Tokyo\r\n
}
CLI (csvformat from csvkit)
# Re-format a CSV file with csvkit (Python-based)
csvformat -D ";" input.csv > output.csv
# Convert tabs to commas
csvformat -t input.tsv > output.csv
# Force-quote all fields
csvformat -U 1 input.csv > quoted.csv
# Using Miller (mlr) to normalize
mlr --icsv --ocsv --quote-all cat input.csv > clean.csv
Časté dotazy
Co dělá CSV formatter?
CSV formatter parsuje nezpracovaný CSV text, normalizuje uvozování kolem polí, ořezává zbytečné mezery a znovu serializuje data s konzistentním oddělovačem a stylem konců řádků. Výstupem je čistý CSV soubor odpovídající RFC 4180 nebo vámi zvoleným pravidlům formátování.
Jak se liší formátování CSV od validace CSV?
Validace ověřuje, zda CSV soubor odpovídá sadě pravidel, a hlásí chyby. Formátování zachází dál: soubor přepíše, aby tyto problémy opravilo. Validátor vám řekne, že řádek 5 obsahuje neuvozovanou čárku. Formatter to opraví přidáním uvozovek kolem pole.
Proč musím formátovat CSV soubory před jejich importem?
Nástroje pro import do databáze, ETL pipeline a tabulkové procesory mají mírně odlišná pravidla parsování CSV. Neuvozované pole obsahující čárku bude v přísných parserech rozděleno do dvou sloupců. Formátování CSV dle RFC 4180 před importem zabraňuje těmto chybám posunutí sloupců a tiché poškození dat.
Jsou moje data při použití tohoto nástroje odesílána na server?
Ne. Veškeré parsování a formátování probíhá ve vašem prohlížeči pomocí JavaScriptu. Vaše CSV data zůstávají na vašem počítači a nejsou nikdy přenášena přes síť. Ověřit to můžete otevřením záložky Síť v nástrojích vývojáře vašeho prohlížeče při používání nástroje.
Mohu při formátování změnit oddělovač?
Ano. Nástroj automaticky detekuje vstupní oddělovač (čárka, tabulátor, středník nebo svislá čára) a umožňuje vybrat jiný oddělovač pro výstup. To se hodí při převodu mezi regionálními formáty CSV nebo přechodu z TSV na standardní CSV.
Jak nástroj zpracovává uvozovaná pole s vloženými novými řádky?
Dle RFC 4180 musí být pole obsahující nové řádky uzavřena do dvojitých uvozovek. Formatter zachovává tyto vložené nové řádky a zajišťuje přítomnost okolních uvozovek. Pokud pole ve vstupu obsahuje neuvozovaný nový řádek, formatter jej při znovu serializaci obalí uvozovkami.
Jaká je maximální velikost souboru, se kterou si nástroj poradí?
Protože nástroj běží ve vašem prohlížeči, praktický limit závisí na dostupné paměti vašeho zařízení. Soubory do 10–20 MB se na moderních počítačích zpracovávají obvykle bez problémů. Pro větší soubory je lepší volbou nástroj příkazové řádky jako csvkit nebo Miller.