CSV-opmaak (Comma-Separated Values) is het proces waarbij ruwe tabellarische tekst wordt genormaliseerd zodat scheidingstekens, aanhalingstekens, witruimte en regeleindes een consistente set regels volgen. RFC 4180, gepubliceerd in 2005, definieert de meest gebruikte CSV-standaard: velden gescheiden door komma's, records afgesloten met CRLF, en elk veld dat een komma, dubbele aanhalingsteken of regelafbreking bevat, omsloten door dubbele aanhalingstekens. Een CSV-formatter neemt rommelige of inconsistente CSV-gegevens en herschrijft deze zodat ze overeenkomen met deze afspraken.
CSV-bestanden uit de praktijk zijn zelden in nette vorm. Spreadsheetexports van Excel, Google Sheets en database-dumptools passen elk een andere aanhalingstekenstrategie toe, gaan anders om met witruimte en kunnen puntkomma's of tabs gebruiken in plaats van komma's. Als je deze bestanden invoert in een parser die strikte RFC 4180-invoer verwacht, zijn kapotte rijen, verschoven kolommen of stille gegevensverlies het gevolg. Formatteren vóór verwerking vangt deze problemen vroeg op.
Een CSV-formatter verschilt van een CSV-converter. Formatteren houdt de gegevens in CSV-formaat. Het normaliseert aanhalingstekens, verwijdert overtollige witruimte, lijnt kolommen opnieuw uit en wisselt eventueel het scheidingsteken. Converteren verandert het formaat volledig en produceert JSON-, HTML-, SQL- of Markdown-uitvoer.
Waarom deze CSV Formatter gebruiken?
Dit hulpmiddel verwerkt en herschrijft je CSV volledig in de browser. Je gegevens verlaten je machine nooit.
⚡
Directe opmaak
Plak CSV en zie de opgeschoonde uitvoer onmiddellijk. De formatter verwerkt en herschrijft in de browser terwijl je typt.
🔒
Privacy-eerst verwerking
Alle verwerking en opmaak vindt plaats in je browsertabblad. Er worden geen gegevens over het netwerk verzonden. Veilig voor bedrijfseigen datasets, inloggegevens en persoonsgegevens (PII) die je machine niet mogen verlaten.
🔧
Configureerbare scheidingstekens
Schakel tussen komma, tab, puntkomma en pipe als scheidingsteken. Het hulpmiddel detecteert het scheidingsteken van de invoer automatisch en laat je een ander scheidingsteken voor de uitvoer kiezen, waardoor normalisatie tussen formaten eenvoudig wordt.
📋
Kopiëren en downloaden met één klik
Kopieer de geformateerde CSV naar je klembord of download het als bestand. Direct klaar voor import in databases, spreadsheets of data-pipelines zonder extra bewerking.
Toepassingen van CSV Formatter
Frontend-ontwikkeling
Schoon CSV-fixture-bestanden op die als mockdata worden gebruikt in React- of Vue-componenten. Consistente aanhalingstekens voorkomen parseerfouten tijdens development-builds.
Backend data-inname
Normaliseer CSV-exports van externe API's voordat je ze invoert in je ETL-pipeline. Het verwijderen van witruimte en het standaardiseren van scheidingstekens voorkomt fouten door verschoven kolommen.
DevOps en CI/CD
Formatteer CSV-configuratiebestanden of seed-data die in versiebeheer staan. Consistente opmaak vermindert ruis in diff-uitvoer en versnelt code-reviews.
QA en testen
Bereid CSV-testfixtures voor met bekende aanhalingstekens en scheidingstekens. Reproduceerbare invoerbestanden maken het eenvoudiger om beweringen te schrijven tegen parser-uitvoer.
Data-engineering
Verwerk CSV-dumps van verouderde databases voor het laden in moderne datawarehouses. Het herstellen van aanhalingstekenproblemen en scheidingstekenverschillen bespaart uren aan debuggen.
Leren en onderwijs
Experimenteer met de aanhalingstekensregels van RFC 4180 door verschillende invoer te plakken en te observeren hoe de formatter deze normaliseert. Een praktische manier om CSV-randgevallen te begrijpen.
CSV-aanhalingstekens en escapingregels (RFC 4180)
RFC 4180 definieert specifieke regels voor wanneer en hoe velden tussen aanhalingstekens moeten worden geplaatst. De zes scenario's hieronder behandelen de gevallen waarbij aanhalingstekensgedrag van belang is.
Scenario
Voorbeeld
Regel
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
Vergelijking van CSV-scheidingstekens
De keuze van het scheidingsteken beïnvloedt de compatibiliteit, leesbaarheid en hoe vaak je geciteerde velden nodig hebt.
Komma (,)
De standaard volgens RFC 4180. Ondersteund door elke CSV-parser en spreadsheettoepassing. Vereist aanhalingstekens wanneer veldwaarden komma's bevatten, wat gebruikelijk is bij adres- en tekstgegevens.
Tab (\t)
Gebruikt in TSV-bestanden (Tab-Separated Values). Tabtekens verschijnen zelden in veldgegevens, dus aanhalingstekens zijn zelden nodig. Gebruikelijk in bio-informatica en database-exports.
Puntkomma (;)
Standaard in CSV-exports van Europese regio's (Duitsland, Frankrijk, Brazilië) waar de komma als decimaalteken wordt gebruikt. Excel gebruikt puntkomma's wanneer de systeemregio komma's als decimaalteken hanteert.
Pipe (|)
Zelden aanwezig in gewone tekst, waardoor het een goede keuze is voor rommelige gegevens waarbij komma's en puntkomma's in veldwaarden voorkomen. Gebruikelijk in mainframe- en legacy-systeemexports.
Codevoorbeelden
Deze voorbeelden laten zien hoe je rommelige CSV kunt verwerken en opnieuw kunt serialiseren met consistente opmaak in verschillende programmeertalen. Elk fragment verwerkt het verwijderen van witruimte, het normaliseren van scheidingstekens en aanhalingstekens.
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
Veelgestelde vragen
Wat doet een CSV-formatter?
Een CSV-formatter verwerkt ruwe CSV-tekst, normaliseert aanhalingstekens rondom velden, verwijdert onnodige witruimte en herschrijft de gegevens met een consistent scheidingsteken en regeleindesstijl. Het resultaat is een schoon CSV-bestand dat voldoet aan RFC 4180 of je gekozen opmaakinstellingen.
Wat is het verschil tussen CSV-opmaak en CSV-validatie?
Validatie controleert of een CSV-bestand voldoet aan een set regels en rapporteert fouten. Opmaak gaat verder: het herschrijft het bestand om die problemen te verhelpen. Een validator vertelt je dat rij 5 een ongenoteerd komma heeft. Een formatter lost dit op door aanhalingstekens rond het veld toe te voegen.
Waarom moet ik CSV-bestanden formatteren vóór het importeren?
Database-importtools, ETL-pipelines en spreadsheet-software hebben elk licht verschillende CSV-verwerkingsregels. Een veld zonder aanhalingstekens met een komma erin wordt in strikte parsers gesplitst in twee kolommen. Het formatteren van je CSV naar RFC 4180 vóór de import voorkomt deze fouten door verschoven kolommen en stille gegevensbeschadiging.
Worden mijn gegevens naar een server gestuurd als ik dit hulpmiddel gebruik?
Nee. Alle verwerking en opmaak vindt plaats in je browser via JavaScript. Je CSV-gegevens blijven op je machine en worden nooit over het netwerk verzonden. Je kunt dit verifiëren door het tabblad Netwerk in je browser te openen terwijl je het hulpmiddel gebruikt.
Kan ik het scheidingsteken wijzigen tijdens het formatteren?
Ja. Het hulpmiddel detecteert het scheidingsteken van de invoer automatisch (komma, tab, puntkomma of pipe) en laat je een ander scheidingsteken voor de uitvoer selecteren. Dit is handig bij het omzetten tussen regionale CSV-formaten of het overschakelen van TSV naar standaard CSV.
Hoe verwerkt het hulpmiddel geciteerde velden met ingebedde regelafbrekingen?
Volgens RFC 4180 moeten velden met regelafbrekingen tussen dubbele aanhalingstekens worden geplaatst. De formatter bewaart deze ingebedde regelafbrekingen en zorgt ervoor dat de omsluitende aanhalingstekens aanwezig zijn. Als een veld in de invoer een regelafbreking zonder aanhalingstekens heeft, omsluit de formatter het veld tijdens het herschrijven.
Wat is de maximale bestandsgrootte die dit hulpmiddel aankan?
Omdat het hulpmiddel in je browser draait, hangt de praktische limiet af van het beschikbare geheugen van je apparaat. Bestanden tot 10-20 MB worden doorgaans zonder problemen verwerkt op moderne machines. Voor grotere bestanden is een commandoregelgereedschap zoals csvkit of Miller een betere optie.