CSV-tabell (.csv)
RFC StandardComma-Separated Values (CSV) är ett allmänt förekommande textformat för tabelldata, där varje rad representerar en datapost och fält skiljs åt av avgränsare.
Konvertera XLSX till CSV
Gratis konverterare från XLSX till CSV i webbläsaren. Konvertera filer direkt på din enhet.
Komprimera CSV online
Privat - filer lämnar aldrig din enhet
Granska och metadata
Operativsystem och filanalysverktyg identifierar CSV-filer genom att granska den inledande sekvensen av binära byte:
Signatur i filhuvudet på bytenivå (magiska byte)
Operativsystem och filanalysverktyg identifierar CSV-filer genom att granska den inledande sekvensen av binära byte:
HEX-SIGNATUR (OFFSET 0):
Ingen fast signaturASCII-REPRESENTATION: Textdata i byte; kodningen varierar (ofta UTF-8)
Standardisering: RFC 4180 / IETF
Tekniska specifikationer
| Containerarkitektur | Avgränsad textfil som representerar tabulära data med rader och kolumner |
| Komprimering | Gzip och Deflate kan komprimera repetitiv text; den resulterande storleken beror på data och inställningar |
| Byteordning | UTF-8-textström (valfri UTF-8-BOM EF BB BF som används av Excel) |
| Färgrymder | Ej tillämpligt |
| Kanaler och struktur | Radposter avgränsade med CRLF där kolumner åtskiljs av kommatecken |
| Maximala dimensioner | Obegränsat; kan strömmas i gigabyte utan att hela filen läses in i minnet |
| Transparens | Ej tillämpligt |
| Strömning och progressiv visning | Inbyggd rad-för-rad-strömningsbearbetning som stöds av alla datapipelines |
Teknisk jämförelsematris: CSV jämfört med konkurrenter
| Tekniskt attribut | CSV (Aktuell) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Filtyp | Enkel textbaserad platt tabell | Zippat XML-kalkylblad | Binär kolumnlagring | Hierarkisk text |
| Flera blad | Nej (endast en enskild platt tabell) | Ja (flera arbetsböcker och blad) | Partitionsbaserad lagring | Nästlade matriser och objekt |
| Datatyper | Otypad råtext | Typade celler, formler, formatering | Strikta binära kolumntyper | Primitiva typer (sträng, tal, boolesk) |
| Analys av stora datamängder | Långsam (kräver linjär läsning av varje rad) | Inte lämpligt för stora datamängder | Ultrasnabb (kolumnbortval och predikatpushdown) | Måttlig |
Vanliga skadeorsaker och hex-återställningsguide
Kolumner förskjuts åt höger eller radantalet stämmer inte överens.
Grundorsak: Ett textfält med ett kommatecken som inte omges av citattecken.
Återställning: RFC 4180 kräver att fält som innehåller kommatecken omges av dubbla citattecken: "Smith, John".
Diakritiska tecken visas som konstiga symboler (teckenförvanskning som é i stället för é) i Excel.
Grundorsak: Excel öppnade en UTF-8-CSV med antagandet att det rörde sig om den äldre Windows ANSI/CP1252-teckenkodningen.
Återställning: Lägg till den tre byte långa UTF-8 Byte Order Mark (0xEF 0xBB 0xBF) i början av filen.
Säkerhetsanalys och attackvektorer för tolkar
CSV-filer öppnas direkt i kalkylbladsprogram som Excel och Google Sheets, vilket utsätter användare för formelinjektionsattacker (CSV-injektion).
Kända attackvektorer
- Formelinjektion: Celler som börjar med '=', '+', '-' eller '@' kan köra kalkylbladsmakron eller DDE-kommandon (t.ex. '=cmd|' /C calc'!A0').
- Dataexfiltrering via HYPERLINK()-formler som skickar känsliga celldata till angriparens externa servrar när någon klickar på dem.
Rekommenderade skyddsåtgärder: När du exporterar användardata till CSV, lägg till ett enkelt citattecken (') eller ett tabbtecken framför varje cell som börjar med '=', '+', '-' eller '@' så att Excel visar innehållet som oformaterad text.
Historiskt ursprung och milstolpar
Viktiga fördelar
- Maximal enkelhet: läsbar i valfri textredigerare och importerbar till varje databas och kalkylblad.
- Extremt snabb rad-för-rad-strömning utan att bygga upp en fullständig DOM i minnet.
- Minimalt extraarbete: ingen mångordig taggsyntax eller schemadefinitioner.
Tekniska begränsningar
- Inga standardiserade datatyper: tal, datum, booleska värden och text lagras alla som råa strängar.
- Inget stöd för flera blad, cellformatering, formler eller metadata.
- Konflikter med avgränsare (kommatecken i text och decimaltecken i europeiska språkområden) orsakar ofta tolkningsfel.
Intressant teknisk kuriosa
- I många europeiska länder där kommatecken används som decimaltecken används semikolon (;) i stället för kommatecken som CSV-avgränsare.
- Microsoft Excel krävde historiskt sett en UTF-8-BOM (0xEF 0xBB 0xBF) för att visa accenttecken som inte ingår i ASCII korrekt.
- Storbritanniens nationella hälsovård (NHS) förlorade känt nog nästan 16 000 covid-19-smittspårningsposter år 2020 eftersom data importerades till ett utdaterat Excel-kalkylbladsformat som hade en radgräns på 65 536.
Vanliga tekniska frågor
Vad är RFC 4180?
RFC 4180 är IETF:s officiella standard för CSV. Den föreskriver att fält som innehåller kommatecken, radbrytningar eller dubbla citattecken måste omslutas av dubbla citattecken, och interna citattecken måste dubbleras ("").
Varför visas förvanskade tecken i CSV-filer som öppnas i Excel?
Äldre versioner av Microsoft Excel använder som standard den lokala Windows-kodsidan (som Windows-1252) snarare än UTF-8 när CSV-filer öppnas direkt. Att lägga till en UTF-8 BOM (Byte Order Mark) i början av filen gör att Excel avkodar UTF-8 korrekt.
Vad är CSV-injektering (formelinjektering)?
CSV-injektering uppstår när otillförlitliga användaruppgifter med tecken som inleder en formel ('=', '+', '-', '@') exporteras till en kalkylbladsfil. När filen öppnas i program som Excel kör kalkylbladet automatiskt formeln eller DDE-kommandot (Dynamic Data Exchange), vilket kan leda till att systemkommandon körs eller data stjäls.
Relaterade konverteringspar för CSV
Genom att konvertera ett Excel-kalkylblad till en CSV-tabell extraheras rådata i tabellform till ett vanligt textformat med brett stöd i olika program.
Omvandling av enkla textbaserade CSV-filer till funktionsrika XLSX-kalkylblad möjliggör avancerad formatering av data, formler och flera blad.
Konvertering av platta textfiler till strukturerade relationella databaser gör det möjligt att köra snabba sökningar och hantera komplexa datarelationer.
Omvandla säkerhetskopieringsskript för relationsdatabaser till platta tabellkalkylblad för enkel dataanalys och rapportering.
Genom att konvertera hierarkiska HDF5-datauppsättningar till enkla telemetri-CSV-filer omvandlas komplexa flerdimensionella vetenskapsregister till enkla rader och kolumner för kalkylbladsanalys.
Genom att konvertera flerdimensionella vetenskapliga rutnät i NetCDF-format till platta telemetri-CSV-filer blir komplexa klimat- och havsdata läsbara i grundläggande kalkylbladsprogram.
Att konvertera vCard-filer till kontakt-CSV omvandlar hierarkiska kontaktkort till platta kalkylbladsrader för enkel import till databaser.