CSV-tabel (.csv)
RFC StandardComma-Separated Values (CSV) er et udbredt simpelt tekstformat til tabeldata, hvor hver linje repræsenterer en datapost, og felterne adskilles af afgrænsningstegn.
Konverter XLSX til CSV
Gratis XLSX til CSV-konverter i browseren. Konverter filer med det samme på din enhed.
Komprimér CSV online
Privat - filer forlader aldrig din enhed
Undersøgelse og metadata
Operativsystemer og filanalysatorer identificerer CSV-filer ved at inspicere den indledende binære bytesekvens:
Byte-niveau Header-signatur (Magic Bytes)
Operativsystemer og filanalysatorer identificerer CSV-filer ved at inspicere den indledende binære bytesekvens:
HEX-SIGNATUR (OFFSET 0):
Ingen fast signaturASCII-REPRÆSENTATION: Tekstbytes; kodningen kan variere
Standardisering: RFC 4180 / IETF
Tekniske specifikationer
| Containerarkitektur | Afgrænsede flade tekstfiler, der repræsenterer tabeldata i rækker og kolonner |
| Komprimering | Gzip og Deflate kan komprimere gentagen tekst; resultatet afhænger af dataene og indstillingerne. |
| Byte-rækkefølge | UTF-8 tekststrøm (valgfri UTF-8 BOM EF BB BF bruges af Excel) |
| Farverum | Ikke relevant |
| Kanaler og struktur | Rækkeposter afgrænset af CRLF med kolonner adskilt af kommaer |
| Maks. dimensioner | Ubegrænset; kan streames i gigabytestørrelse uden at indlæse hele filen i hukommelsen |
| Gennemsigtighed | Ikke relevant |
| Streaming og progressiv | Indbygget linje-for-linje-streamingsbehandling understøttet af alle datapipelines |
Teknisk sammenligningsmatrix: CSV sammenlignet med konkurrenterne
| Teknisk attribut | CSV (Aktuel) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Filtype | Flad tabel i ren tekst | Zippet XML-regneark | Binær kolonnelagring | Hierarkisk tekst |
| Flere ark | Nej (kun én flad tabel) | Ja (flere arbejdsbøger og ark) | Partitionsbaseret lagring | indlejrede arrays og objekter |
| Datatyper | Utypiseret råtekst | Typiserede celler, formler, formatering | Strenge binære kolonner | Primitiver (streng, tal, boolesk) |
| Big Data-analyse | Langsom (kræver sekventiel læsning af alle rækker) | Ikke egnet til store datamængder | Ultrahurtig (udeladelse af kolonner og nedskubning af prædikater) | Moderat |
Almindelige korruptionstilstande og hex-gendannelsesvejledning
Kolonnerne rykker mod højre, eller antallet af rækker stemmer ikke overens.
Grundlæggende årsag: Et tekstfelt indeholder et ubeskyttet komma uden omkringliggende anførelsestegn.
Gendannelse: RFC 4180 kræver, at felter, der indeholder kommaer, indkapsles i dobbelte anførelsestegn: "Smith, John".
Accenttegn gengives som mærkelige symboler (mojibake som é i stedet for é) i Excel.
Grundlæggende årsag: Excel åbnede en UTF-8 CSV ud fra en antagelse om ældre Windows ANSI/CP1252-tegnkodning.
Gendannelse: Indsæt det 3-byte store UTF-8 Byte Order Mark (0xEF 0xBB 0xBF) i starten af filen.
Sikkerhedsanalyse og parser-angrebsvektorer
CSV-filer åbnes direkte i regnearksprogrammer som Excel og Google Sheets, hvilket udsætter brugere for formelinjektionsangreb (CSV-injektion).
Kendte angrebsvektorer
- Formelinjektion: Celler, der starter med '=', '+', '-' eller '@', udfører regnearksmakroer eller DDE-kommandoer (f.eks. '=cmd|' /C calc'!A0').
- Dataudsivning via HYPERLINK()-formler, der sender følsomme celledata til eksterne angriberes servere, når der klikkes.
Defensive bedste praksisser: Når brugerdata eksporteres til CSV, skal der tilføjes et enkelt citationstegn (') eller tabulator før celler, der starter med '=', '+', '-' eller '@', for at gennemtvinge almindelig tekstudskrivning i Excel.
Historisk oprindelse og milepæle
Vigtige fordele og styrker
- Maksimal enkelhed: læselig i enhver teksteditor og kan importeres til enhver database og ethvert regneark.
- Ekstremt hurtig linje-for-linje-streaming uden opbygning af en fuld DOM i hukommelsen.
- Minimalt overhead: ingen ordrige tag-syntakser eller skemadefinitioner.
Tekniske begrænsninger og ulemper
- Ingen standarddatatyper: tal, datoer, sandhedsværdier og tekst gemmes alle som rå strenge.
- Ingen understøttelse af flere ark, celleformatering, formler eller metadata.
- Afgrænsningskonflikter (kommaer inde i tekst, decimalkommaer i europæiske landestandarder) forårsager hyppige fortolkningsfejl.
Interessante tekniske fakta
- I mange europæiske lande, hvor kommaer bruges som decimaltegn, bruges semikolon (;) i stedet for kommaer som CSV-separatorer.
- Microsoft Excel krævede historisk set en UTF-8 BOM (0xEF 0xBB 0xBF) for korrekt at vise accenttegn uden for ASCII.
- Det britiske sundhedsvæsen (NHS) mistede berømt næsten 16.000 COVID-19-kontaktopsporingsposter i 2020, fordi data blev importeret til et forældet Excel-regnearksformat, der begrænsede rækkerne til 65.536.
Ofte stillede tekniske spørgsmål
Hvad er RFC 4180?
RFC 4180 er den officielle IETF-standard for CSV. Den foreskriver, at felter, der indeholder kommaer, linjeskift eller dobbelte anførelsestegn, skal omsluttes af dobbelte anførelsestegn, og interne anførelsestegn skal escapes ved at fordoble dem ("").
Hvorfor åbner CSV-filer med beskadigede tegn i Excel?
Ældre versioner af Microsoft Excel anvender som standard den lokale Windows-kodning (som Windows-1252) frem for UTF-8, når CSV-filer åbnes direkte. Tilføjelse af en UTF-8 BOM (Byte Order Mark) i starten af filen tvinger Excel til at afkode UTF-8 korrekt.
Hvad er CSV-injektion (formelinjektion)?
CSV-injektion opstår, når ikke-valideret brugerinput med indledende formeltriggere ('=', '+', '-', '@') eksporteres til en regnearksfil. Når filen åbnes i programmer som Excel, udfører regnearket automatisk formlen eller DDE-kommandoen (Dynamic Data Exchange), hvilket potentielt kan køre systemkommandoer eller udsive data.
Relaterede konverteringspar for CSV
Konvertering af et Excel-regneark til en CSV-tabel udtrækker tabeldataene til et udbredt tekstformat, som er kompatibelt med mange programmer.
Konvertering af simple tekstbaserede CSV-filer til funktionsrige XLSX-regneark muliggør avanceret dataformatering, formler og flere regneark.
Konvertering af flade tekstfiler til strukturerede relationelle databaser gør det muligt at køre hurtige forespørgsler og administrere komplekse datarelationer.
Transformér relationelle databasebackup-scripts til flade, tabelformede regneark til enkel dataanalyse og rapportering.
Konvertering af hierarkiske HDF5-dataset til flade telemetri-CSV-filer omdanner komplekse multidimensionelle videnskabelige poster til enkle rækker og kolonner til regnearksanalyse.
Konvertering af multidimensionelle NetCDF-videnskabelige gitterdata til flade telemetri-CSV-filer gør komplekse klima- og havdata læsbare i almindelige regnearksprogrammer.
Konvertering af vCard-filer til CSV-fil med kontakter omdanner hierarkiske kontaktkort til flade regnearksrækker for nem databaseimport.