Vad är filformatet CSV?
.csv är ett filformat som lagrar olika typer av data i teckenseparerade textmängder, oftast med ett kommatecken - därav namnet Comma-Separated Values. Formatet dokumenteras i RFC 4180 (2005), en minimal men allmänt vedertagen standard. Dataposter separeras av ett nyradstecken, medan enskilda fältvärden vanligtvis omges av dubbla citattecken. För att inkludera ett bokstavligt dubbelt citattecken inuti ett fält skrivs det dubbelt som "".
Den första raden i en .csv-fil innehåller konventionellt kolumnnamn (en rubrikrad), även om CSV-specifikationen inte kräver denna struktur. Poster kan separeras av:
- Kommatecken,
- Semikolon,
- Tabbar (se .TSV),
- Andra tecken - förutsatt att de används konsekvent genom hela dokumentet.
.csv-filer används för att lagra, importera och exportera data i ett väldefinierat, plattformsoberoende format som vilken textredigerare som helst kan öppna. Eftersom valet av separator är fritt kan det ibland orsaka problem vid konvertering; därför måste guider för dataimport erbjuda ett alternativ för att konfigurera vilken separator som ska användas, vilket är fallet med kalkylprogram som Microsoft Excel och LibreOffice Calc.
.csv har ingen filsignatur (magic bytes) och identifieras genom sin struktur snarare än sitt innehåll. En fil kan valfritt börja med ett UTF-8 byte-order mark (EF BB BF), vilket Excel skriver automatiskt för att signalera kodningen. De flesta programmeringsspråk tillhandahåller dedikerade bibliotek för att importera och hantera .csv-filer tillförlitligt, vilket gör det till ett av de mest universella formaten för datautbyte som används idag.
Säkerhet & trygghet
RISK: MEDIUMCSV är vanlig text och kan inte i sig köra kod, men det innebär en verklig risk: CSV-injektion (formelinjektion). Om en cell börjar med =, +, - eller @, kan ett kalkylprogram köra den som en formel vid öppning - angripare utnyttjar detta i exporterade CSV-filer för att köra kommandon eller läcka data. Moderna Excel/LibreOffice varnar innan sådana formler körs; aktivera dem inte i filer från okända källor. Den vardagliga «risken» är datakorruption, inte skadlig kod: fel kodning eller avgränsare som tyst förstör nummer, datum och inledande nollor (t.ex. postnummer och telefonnummer som tappar sin inledande 0).
Formatdetaljer
i ett nötskalProgram som öppnar CSV-filer
Tekniska detaljer
djup specifikation| MIME-typ | text/csv |
| Filstruktur | Vanlig text; rader avgränsade av radbrytningar, fält avgränsade av ett valt separatortecken |
| Standardavgränsare | Komma (`,`); semikolon och tabbar är också vanligt förekommande varianter |
| Radbrytning (RFC 4180) | CRLF (`\r\n` enligt specifikation); enbart LF (`\n`) är allmänt accepterat i praktiken |
| Tecken för fältcitering | Dubbelt citattecken (`"`); dubbleras (`""`) för att undanta ett bokstavligt citattecken inuti ett fält |
| Rubrikrad | Valfri första rad som konventionellt listar kolumnnamn; RFC 4180 lämnar rubrikstrukturen odefinierad |
| Filsignatur (magic bytes) | Ingen; identifieras genom struktur. En valfri UTF-8 BOM (`EF BB BF`) kan förekomma i början av filen |
| Stöd för fält över flera rader | Stöds när fältinnehållet är inneslutet i dubbla citattecken |
| Datamodell | Endast en enskild platt tabell; ingen nästling, relationer eller kolumndatatyper kodas i formatet |
| Teckenkodning | Valfri kodning som avtalats mellan sändare och mottagare; UTF-8 och Windows-1252 är vanligast |
| Inbyggd komprimering | Ingen; filer arkiveras ofta som `.gz` eller [ZIP](/format/zip) |
| Lämplighet för streaming | Hög - rader kan bearbetas rad för rad utan att hela filen behöver laddas in i minnet |
| Stöd för binärdata | Stöds inte nativt; binärt innehåll måste Base64-kodas som text |
| Radbegränsningar i program | Ingen begränsning på formatnivå; Microsoft Excel begränsar import till 1 048 576 rader |
| Släppt | 1970s (early use); RFC 4180 published 2005 |
| Öppen standard | Ja · royaltyfri |
| Specifikation | www.rfc-editor.org |
CSV-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om CSV-filer.