Hvad er CSV-filformatet?
.csv er et filformat, der gemmer forskellige typer data i tegn-separerede tekstsæt, oftest med et komma - deraf navnet Comma-Separated Values. Formatet er dokumenteret i RFC 4180 (2005), en minimal, men bredt anerkendt standard. Dataposter adskilles af et linjeskift, mens individuelle feltværdier almindeligvis er omsluttet af dobbelte anførselstegn. For at inkludere et bogstaveligt dobbelt anførselstegn i et felt, skrives det to gange som "".
Den første linje i en .csv-fil indeholder konventionelt kolonnenavne (en overskriftsrække), selvom CSV-specifikationen ikke dikterer dens struktur. Dataposter kan adskilles af:
- Kommaer,
- Semikolon,
- Tabulatorer (se .TSV),
- Andre tegn - brugt konsekvent gennem hele dokumentet.
.csv-filer bruges til lagring, import og eksport af data i et veldefineret, platformuafhængigt format, som enhver teksteditor kan åbne. Da valget af separator er frit, kan det nogle gange give problemer under konvertering; derfor skal dataimportguider tilbyde en mulighed for at konfigurere den separator, der skal bruges, som det er tilfældet med regnearksprogrammer som Microsoft Excel og LibreOffice Calc.
.csv har ingen filsignatur (magic bytes) og identificeres på sin struktur snarere end sit indhold. En fil kan valgfrit begynde med et UTF-8 byte-order mark (EF BB BF), som Excel skriver automatisk for at signalere kodningen. De fleste programmeringssprog tilbyder dedikerede biblioteker til pålidelig import og håndtering af .csv-filer, hvilket gør det til et af de mest universelle dataudvekslingsformater i brug i dag.
Sikkerhed og tryghed
RISIKO: MEDIUMCSV er almindelig tekst og kan ikke i sig selv køre kode, men det indebærer en reel risiko: CSV-injection (formel-injection). Hvis en celle starter med =, +, - eller @, kan et regneark eksekvere det som en formel ved åbning - angribere udnytter dette i eksporterede CSV-filer til at køre kommandoer eller lække data. Moderne Excel/LibreOffice advarer før kørsel af sådanne formler; aktiver dem ikke i filer fra upålidelige kilder. Den daglige «risiko» er datakorruption, ikke malware: forkert kodning eller separator, der lydløst ødelægger tal, datoer og foranstillede nuller (f.eks. postnumre og telefonnumre, der mister deres indledende 0).
Formatdetaljer
kort fortaltProgrammer der åbner CSV-filer
Tekniske detaljer
dyb specifikation| MIME-type | text/csv |
| Filstruktur | Almindelig tekst; rækker afgrænset af linjeskift, felter afgrænset af et valgt separatortegn |
| Standard separator | Komma (`,`); semikolon og tabulatorer er også meget anvendte varianter |
| Linjeskift (RFC 4180) | CRLF (`\r\n` ifølge specifikationen); kun LF (`\n`) er bredt accepteret i praksis |
| Anførselstegn for felter | Dobbelt anførselstegn (`"`); fordoblet (`""`) for at undslippe et bogstaveligt anførselstegn i et felt |
| Overskriftsrække | Valgfri første række, der konventionelt viser kolonnenavne; RFC 4180 lader overskriftsstrukturen være udefineret |
| Filsignatur (magic bytes) | Ingen; identificeres ved struktur. Et valgfrit UTF-8 BOM (`EF BB BF`) kan forekomme i starten af filen |
| Understøttelse af felter over flere linjer | Understøttet når feltindholdet er omsluttet af dobbelte anførselstegn |
| Datamodel | Kun enkelt flad tabel; ingen indlejring, relationer eller kolonnedatatyper kodet i formatet |
| Tegnkodning | Enhver kodning aftalt mellem afsender og modtager; UTF-8 og Windows-1252 er mest almindelige |
| Indbygget komprimering | Ingen; filer arkiveres ofte som `.gz` eller [ZIP](/format/zip) |
| Streaming-egnethed | Høj - rækker kan behandles linje for linje uden at indlæse hele filen i hukommelsen |
| Understøttelse af binær data | Ikke indbygget understøttet; binært indhold skal Base64-kodes som tekst |
| Række-begrænsninger i programmer | Ingen begrænsning på formatniveau; Microsoft Excel begrænser import til 1.048.576 rækker |
| Udgivet | 1970s (early use); RFC 4180 published 2005 |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.rfc-editor.org |
CSV-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om CSV-filer.