Legacy File Converter-logoLegacy File Converter
Historietime8 min lesing

Historietime: Hva er en .csv-fil? Hvorfor Excel endrer dataene dine når den åpner en

Kommaseparerte verdier – tabellen i ren tekst som vokste ut av 1970-tallets FORTRAN og de tidlige regnearkene, først ble beskrevet i RFC 4180 i 2005 og fortsatt mister innledende nuller og gennavn hver gang et regneark gjetter hva teksten betyr.

·Av Legacy File Converter-teamet
En listepapirutskrift med kolonner, en stormaskin-båndspole og hullkort som flyter inn i et lysende regnearkrutenett på en bærbar datamaskin, ingen logoer

TL;DR

En .csv-fil inneholder kommaseparerte verdier (comma-separated values): en tabell skrevet som ren tekst, én post per linje, komma mellom feltene og doble anførselstegn rundt ethvert felt som inneholder et komma, et anførselstegn eller et linjeskift. Ideen er eldre enn PC-en – IBMs FORTRAN-kompilatorer leste i 1972 kommaseparert inndata fra terminaler og hullkort – og i 1983 lagret regnearkprogrammer allerede filer med endelsen .CSV. Ingen skrev reglene formelt ned før RFC 4180 i oktober 2005, som også registrerte MIME-typen text/csv. Fordi en CSV verken har kolonnetyper, formler eller en angivelse av kodingen, må ethvert program som åpner den, gjette – og Excels gjetninger er grunnen til at innledende nuller forsvinner, gennavn blir til datoer og hele filen noen ganger havner i én kolonne.

Hva er en .csv-fil?

Åpne en CSV i Notisblokk, og ingenting er skjult: linjer med tekst, hver linje en post, hvert komma et kolonneskifte. Et felt som må inneholde et komma, settes i doble anførselstegn, og et anførselstegn inne i et slikt felt skrives to ganger. Det er hele formatet. Det finnes ingen topptekstblokk, ingen liste over kolonnetyper, ingen formler og ingen formatering – bare verdiene, slik et program skrev dem. Den enkelheten er grunnen til at nesten enhver database, ethvert regneark, regnskapsprogram, bank og programmeringsspråk kan lese og skrive CSV, og til at det fortsatt er reserveformatet for de fleste dataeksporter og -importer.

Hvorfor roter Excel til CSV-en min?

Fordi en CSV ikke kan si hva verdiene er, bestemmer Excel selv. Microsofts egen dokumentasjon lister opp de automatiske konverteringene Excel gjør som standard når tekst skrives, limes inn eller lastes inn: Den fjerner innledende nuller og gjør resten til et tall (00123 blir 123 – slik mister postnumre og ansattnumre det første sifferet); den beholder bare de første 15 sifrene i lange tall og kan vise dem i vitenskapelig notasjon (de siste sifrene i et kort- eller kontonummer blir nuller); den leser sifre rundt bokstaven E som en eksponent (123E5 blir 1,23E+07); og den gjør datolignende tekst som JAN1 om til en dato. Lagrer du deretter arket som CSV igjen, er det de konverterte verdiene som skrives.

Den andre overraskelsen er skilletegnet. Når Excel lagrer eller åpner en CSV, bruker den listeskilletegnet fra Windows’ regionsinnstillinger. I store deler av det kontinentale Europa – også Norge – er komma desimaltegn (3,14), så listeskilletegnet er semikolon, og Microsofts veiledning bekrefter sammenhengen: Å sette desimaltegnet til komma «tvinger Excel til å bruke semikolon som listeskilletegn». En fil lagret i Oslo er derfor ofte full av semikolon, og en kommaseparert fil fra et amerikansk system kan åpnes med hver rad presset inn i kolonne A. Tegnkodingen er den tredje fellen: Microsoft påpeker at en UTF-8-CSV bare åpnes normalt hvis den er lagret med byte order mark (BOM) – noen få usynlige byte i starten som annonserer kodingen; uten den kan æ, ø og å bli til rot, med mindre du importerer filen og velger UTF-8.

Åpne en CSV uten gjetting

I stedet for å dobbeltklikke kan du i Excel velge Data > Hent data > Fra tekst/CSV, kontrollere skilletegn og filopprinnelse (koding) og sette kolonner som postnumre, kontonumre eller gensymboler til Tekst før du laster inn. Nyere Excel-versjoner lar deg også slå av enkeltkonverteringer under Fil > Alternativer > Data > Automatisk datakonvertering.

1972: komma i stedet for kortkolonner

Før CSV hadde et navn, hadde det en grunn. Data til 1960-tallets stormaskinprogrammer ble vanligvis stanset i faste kolonner på 80-kolonners hullkort, og et FORTRAN-program trengte en FORMAT-setning som sa nøyaktig hvilke kolonner som inneholdt hvilket tall; en verdi stanset én kolonne feil ble lest feil. IBMs FORTRAN IV-programprodukter for operativsystemene OS og VM/370, beskrevet i en generell informasjonshåndbok datert juli 1972, tilbød et alternativ kalt listestyrt inn- og utdata. Håndboken forklarer at inndataverdier «skilles med mellomrom eller komma, der påfølgende komma angir utelatte verdier», og at programmererens bekymring «for dataoppsett og bestemte kortkolonner» forsvinner. IBM oppførte det den gang blant sine utvidelser av standardspråket.

Listestyrt inndata ble en del av standardspråket med FORTRAN 77, godkjent i 1978. Det godtok komma eller mellomrom som skilletegn, så en tekst uten anførselstegn kunne ikke inneholde noen av dem – nettopp problemet CSV-ens anførselstegn senere måtte løse. Ingenting av dette var ennå et filformat. Det var en måte å la folk taste tall etter hverandre, skilt med komma, og la datamaskinen finne ut hvor hvert tall begynte.

1983: et regneark gir filene en endelse

Mikrodatamaskinenes regneark gjorde vanen til filer. Referansehåndboken fra 1983 for Osborne Executive, en bærbar kontordatamaskin som ble levert med Sorcims SuperCalc, beskriver et konverteringsverktøy som gir «.CSV for Comma-Separated-Value-filer», og forklarer oppbygningen: datarader, hver avsluttet med vognretur og linjeskift, kommaseparerte verdier, tekststrenger i doble anførselstegn – som kan inneholde komma – og et Control-Z som markerer slutten på filen. Håndboken legger til at slike data også kunne lages på en stormaskin og lastes ned til skrivebordet.

Samme håndbok beskriver kompromisset som fortsatt definerer formatet. Formler sendes ikke til en CSV-fil; «bare verdiene som vises på skjermen da konverteringen skjer», sendes. Konverter et ark til CSV og tilbake, og formlene er borte. CSV var aldri ment å erstatte et regneark. Det var minste felles nevner som lot et regneark, en database, et BASIC-program og en stormaskin bli enige om rader og kolonner.

Slik fungerer bytene

En CSV består bare av tegn. Hver post er en linje, klassisk avsluttet med vognretur og linjeskift (CRLF, de to kontrolltegnene DOS og Windows bruker for å avslutte en linje), selv om noen programmer bare skriver linjeskift. Felter skilles med komma. Et felt kan stå i doble anførselstegn og må det hvis det inneholder et komma, et anførselstegn eller et linjeskift; et anførselstegn inne i et slikt felt dobles (""). Den første linjen kan være en overskriftsrad med kolonnenavn, men ingenting i filen sier om den er det. Og ingenting sier hva verdiene betyr: 00123, 1-2 og MARCH1 er bare tekst til et program bestemmer noe annet.

Filen forteller heller ikke hvilken tegnkoding den bruker – koblingen mellom byte og bokstaver. Eldre CSV-er ble ofte skrevet i en enkeltbyte tegntabell fra Windows eller DOS tilpasset maskinens språk; nyere er som regel UTF-8, Unicode-kodingen nettet kjører på. Programmet som leser filen, må gjette – derfor betyr BOM noe for Excel, og derfor er navn med aksenter, æ, ø, å eller asiatiske skrifttegn de første som går i stykker når en CSV flytter mellom systemer.

2005: RFC 4180 skriver ned reglene

På begynnelsen av 2000-tallet var CSV overalt og spesifisert ingen steder. I oktober 2005 publiserte IETF (Internet Engineering Task Force, organet som utvikler internettstandarder) RFC 4180, «Common Format and MIME Type for Comma-Separated Values (CSV) Files», skrevet av Yakov Shafranovich. Innledningen er rett frem: «Overraskende nok er dette formatet, selv om det er svært vanlig, aldri blitt formelt dokumentert.» Notatet beskriver «formatet som de fleste implementasjoner ser ut til å følge» – CRLF-linjeskift, en valgfri overskriftsrad, komma, regler for doble anførselstegn – og registrerer text/csv hos IANA, organet som fører listen over medietyper, med de valgfrie parameterne charset og header. Det påpeker til og med at «noen programmer, som Microsoft Excel, ikke bruker doble anførselstegn i det hele tatt».

RFC 4180 er en informativ RFC; den sier selv at den «ikke fastsetter noen internettstandard av noe slag». Senere arbeid bygde rundt den i stedet for å erstatte den: I 2014 definerte RFC 7111 hvordan en nettadresse kan peke på bestemte rader, kolonner eller celler i en text/csv-fil, og en W3C-arbeidsgruppe kalt CSV on the Web, som ble lagt ned i 2016, publiserte anbefalinger for å beskrive en CSV-fils kolonner – inkludert typene – i en separat metadatafil. Selve CSV-filen har fortsatt ingen.

Når gjetningen slår feil: gener, datoer og tapte rader

Det best dokumenterte offeret er biologien. I 2004 rapporterte Barry Zeeberg og kolleger i BMC Bioinformatics at Excels standardkonverteringer endret gennavn: Tumorsuppressoren DEC1 ble til «1-DEC», og RIKEN-kloneidentifikatorer som 2310009E13 ble til tallet 2,31E+13 – konverteringer de kalte irreversible. I 2016 gikk Mark Ziemann, Yotam Eren og Assam El-Osta gjennom supplerende Excel-filer fra 18 tidsskrifter publisert 2005–2015 og fant feil i gennavn i filer fra 704 artikler – 19,6 % av artiklene med genlister i Excel. I 2020 publiserte HUGO Gene Nomenclature Committee (HGNC), som godkjenner menneskelige gensymboler, retningslinjer som bekreftet at alle symboler som automatisk ble til datoer, var endret i løpet av 2019: SEPT1 heter nå SEPTIN1, og MARCH1 heter nå MARCHF1.

CSV sto også i starten av en svikt i helsevesenet. Mellom 25. september og 2. oktober 2020 manglet 15 841 positive covid-19-tilfeller i England i de daglige tallene. Public Health England (PHE) opplyste at noen filer hadde overskredet den maksimale filstørrelsen i prosessen som lastet resultatene inn i sentrale systemer. BBC rapporterte at testfirmaene hadde levert resultatene som CSV-filer uten problemer, men at PHEs automatiske prosess helte dem over i Excel-maler i det gamle XLS-formatet, som bare rommer rundt 65 000 rader; med flere rader per test ble hver mal full ved rundt 1 400 tilfeller, og resten falt ut.

Microsoft endret til slutt programvaren i stedet for standardinnstillingene. I oktober 2023 kunngjorde Excel-teamet at innstillinger for automatisk datakonvertering var generelt tilgjengelige for Windows (versjon 2309 eller nyere) og Mac (16.77 eller nyere), med avmerkingsbokser for innledende nuller, avkorting til 15 sifre, bokstaven E og «sammenhengende bokstaver og tall» til datoer, pluss en valgfri advarsel når en .csv- eller .txt-fil er i ferd med å bli konvertert. Konverteringene er slått på til du slår dem av.

Ta vare på den originale CSV-en

Når Excel har konvertert en kolonne og du lagrer over filen, inneholder CSV-en de endrede verdiene; den opprinnelige teksten kan ikke gjenskapes derfra. Jobb på en kopi, og ta vare på den urørte eksporten ved siden av det du redigerer.

Hvorfor .csv-filer fortsatt ligger på disker i 2026

CSV har overlevd systemene som laget filene, fordi det var nødutgangen. Banker tilbyr kontoutskrifter som CSV, gamle regnskaps- og medlemsprogrammer eksporterer postene sine slik, laboratorieutstyr og dataloggere skriver det, og tiår med databasemigreringer har gått gjennom det. Mange av disse filene er i dag eldre filer: eksporter fra programvare som ikke lenger kjører, skrevet i en gammel tegntabell, med semikolon eller komma avhengig av hvordan PC-en var satt opp, og fulle av postnumre, varenumre og ID-er som et moderne regneark stille vil tolke om ved første dobbeltklikk.

Legacy File Converter oppfører kommaseparerte verdier (.csv) blant regnearkformatene på siden Støttede filtyper og konverterer dem på din egen Windows-PC til XLSX, PDF, Markdown eller HTML – ingenting lastes opp, noe som betyr noe når eksporten inneholder bank- eller medlemsdata. Kontroller etterpå kolonner som postnumre, lange ID-er og datoer mot originalfilen. Om andre tidlige måter å utveksle regnearkdata på, se Historietime: Hva er en .dif-fil? og Historietime: Hva er en .slk-fil?; om den binære arbeidsboken fra covid-19-historien, se Historietime: Hva er en .xls-fil?.

Klar til å åpne de gamle filene dine?

Start gratis, og lås deretter opp ubegrenset konvertering med en Standard-lisens til $79.95 som betales én gang. Last ned installasjonsprogrammet for Windows – alle funksjoner for opptil 10 filer.

Gratis prøveversjon

Alle funksjonene i programmet · opptil 10 filer

Windows 10 eller 11

Gratis prøveversjon – konverter opptil 10 filer. Last ned installasjonsprogrammet for Windows og konverter lokalt på PC-en din.

Start den gratis prøveversjonen – last ned installasjonsprogrammet

Direkte installasjonsprogram for Windows · offline MSI

Er dette trygt? — utgiver, installasjonsprogram og hjelp med SmartScreen

Kjøp Standard – $79.95

Krever Windows 10 eller 11. Ingen abonnementer.