Historiaoppitunti: Mikä on .csv-tiedosto? Miksi Excel muuttaa tietojasi avatessaan sen
Pilkuilla erotetut arvot – pelkkänä tekstinä tallennettu taulukko, joka syntyi 1970-luvun FORTRANista ja varhaisista taulukkolaskentaohjelmista, kirjattiin ylös vasta RFC 4180:ssä vuonna 2005 ja menettää yhä etunollia ja geenien nimiä aina, kun taulukkolaskenta arvaa, mitä teksti tarkoittaa.

TL;DR
.csv-tiedosto sisältää pilkuilla erotettuja arvoja (comma-separated values): taulukon pelkkänä tekstinä, yksi tietue riviä kohden, pilkut kenttien välissä ja lainausmerkit jokaisen sellaisen kentän ympärillä, jossa on pilkku, lainausmerkki tai rivinvaihto. Ajatus on PC:tä vanhempi – IBM:n FORTRAN-kääntäjät lukivat jo 1972 pilkuilla erotettua syötettä päätteiltä ja reikäkorteilta – ja 1983 taulukkolaskentaohjelmat tallensivat jo tiedostoja .CSV-päätteellä. Kukaan ei kirjannut sääntöjä virallisesti ennen lokakuun 2005 RFC 4180 -dokumenttia, joka myös rekisteröi MIME-tyypin text/csv. Koska CSV:ssä ei ole saraketyyppejä, kaavoja eikä koodausmerkintää, jokaisen sen avaavan ohjelman on arvattava – ja Excelin arvaukset ovat syy siihen, että etunollat katoavat, geenien nimistä tulee päivämääriä ja joskus koko tiedosto päätyy yhteen sarakkeeseen.
Mikä on .csv-tiedosto?
Avaa CSV Muistiossa, eikä mitään ole piilossa: tekstirivejä, jokainen rivi yksi tietue, jokainen pilkku sarakkeen vaihto. Kenttä, jonka on sisällettävä pilkku, kirjoitetaan lainausmerkkeihin, ja lainausmerkki tällaisen kentän sisällä kirjoitetaan kahdesti. Siinä on koko muoto. Ei otsikkolohkoa, ei saraketyyppien luetteloa, ei kaavoja eikä muotoilua – vain arvot sellaisina kuin jokin ohjelma ne kirjoitti. Tämän yksinkertaisuuden vuoksi lähes jokainen tietokanta, taulukkolaskentaohjelma, kirjanpito-ohjelma, pankki ja ohjelmointikieli osaa lukea ja kirjoittaa CSV:tä, ja siksi se on yhä useimpien tietojen vientien ja tuontien varamuoto.
Miksi Excel sotkee CSV:ni?
Koska CSV ei voi kertoa, mitä sen arvot ovat, Excel päättää itse. Microsoftin oma dokumentaatio luettelee automaattiset muunnokset, jotka Excel tekee oletusarvoisesti, kun tekstiä kirjoitetaan, liitetään tai ladataan: se poistaa etunollat ja muuttaa loput luvuksi (00123:sta tulee 123 – näin postinumerot ja henkilönumerot menettävät ensimmäisen numeronsa); se säilyttää pitkistä luvuista vain 15 ensimmäistä numeroa ja voi näyttää ne eksponenttimuodossa (kortti- tai tilinumeron viimeisistä numeroista tulee nollia); se tulkitsee E-kirjaimen ympärillä olevat numerot eksponentiksi (123E5:stä tulee 1,23E+07); ja se muuttaa päivämäärää muistuttavan tekstin, kuten JAN1, päivämääräksi. Jos tallennat taulukon sen jälkeen taas CSV:ksi, kirjoitetaan muunnetut arvot.
Toinen yllätys on erotin. Tallentaessaan tai avatessaan CSV:n Excel käyttää Windowsin alueasetusten luettelon erotinta. Suuressa osassa Manner-Eurooppaa – myös Suomessa – pilkku on desimaalierotin (3,14), joten luettelon erotin on puolipiste, ja Microsoftin ohje vahvistaa yhteyden: desimaalierottimen asettaminen pilkuksi ”pakottaa Excelin käyttämään puolipistettä luettelon erottimena”. Helsingissä tallennettu tiedosto on siksi usein täynnä puolipisteitä, ja yhdysvaltalaisesta järjestelmästä tuleva pilkuilla erotettu tiedosto voi avautua niin, että jokainen rivi on puristettu sarakkeeseen A. Merkistökoodaus on kolmas ansa: Microsoft huomauttaa, että UTF-8-CSV avautuu normaalisti vain, jos se on tallennettu tavujärjestysmerkin (BOM) kanssa – muutama näkymätön tavu alussa ilmoittaa koodauksen; ilman sitä ä- ja ö-kirjaimet voivat muuttua mössöksi, ellei tiedostoa tuoda ja valita UTF-8:aa.
Avaa CSV ilman arvailua
Kaksoisnapsautuksen sijaan valitse Excelissä Tiedot > Nouda tiedot > Tekstistä/CSV:stä, tarkista erotin ja tiedoston alkuperä (koodaus) ja aseta esimerkiksi postinumero-, tilinumero- tai geenisymbolisarakkeet Teksti-muotoon ennen lataamista. Uudet Excel-versiot antavat myös poistaa yksittäisiä muunnoksia kohdassa Tiedosto > Asetukset > Tiedot > Automaattinen tietojen muuntaminen.
1972: pilkut korttisarakkeiden sijaan
Ennen kuin CSV:llä oli nimi, sillä oli syy. 1960-luvun keskustietokoneohjelmien tiedot lävistettiin yleensä 80-sarakkeisten reikäkorttien kiinteisiin sarakkeisiin, ja FORTRAN-ohjelma tarvitsi FORMAT-lauseen, joka kertoi tarkalleen, mitkä sarakkeet sisälsivät minkäkin luvun; sarakkeen verran väärään kohtaan lävistetty arvo luettiin väärin. IBM:n FORTRAN IV -ohjelmatuotteet OS- ja VM/370-käyttöjärjestelmille, joita kuvataan heinäkuulta 1972 päivätyssä yleisessä tieto-oppaassa, tarjosivat vaihtoehdon nimeltä luettelo-ohjattu syöttö ja tulostus. Opas selittää, että syötearvot ”erotetaan välilyönneillä tai pilkuilla, ja peräkkäiset pilkut osoittavat pois jätettyjä arvoja”, ja että ohjelmoijan huoli ”tietojen asettelusta ja tietyistä korttisarakkeista” poistuu. IBM luetteli sen tuolloin standardikielen laajennuksiinsa.
Luettelo-ohjatusta syötöstä tuli osa standardikieltä FORTRAN 77:ssä, joka hyväksyttiin 1978. Se hyväksyi erottimiksi pilkut tai välilyönnit, joten lainausmerkitön teksti ei voinut sisältää kumpaakaan – juuri se ongelma, joka CSV:n lainausmerkkien piti myöhemmin ratkaista. Mikään tästä ei vielä ollut tiedostomuoto. Se oli tapa antaa ihmisten kirjoittaa lukuja peräkkäin pilkuilla erotettuina ja antaa tietokoneen selvittää, mistä kukin alkoi.
1983: taulukkolaskentaohjelma antaa tiedostoille päätteen
Mikrotietokoneiden taulukkolaskentaohjelmat tekivät tavasta tiedostoja. Osborne Executive -tietokoneen – kannettavan toimistokoneen, jonka mukana tuli Sorcimin SuperCalc – vuoden 1983 käsikirja kuvaa muunnostyökalua, joka antaa ”.CSV Comma-Separated-Value-tiedostoille”, ja selittää rakenteen: tietorivejä, jokainen päätetty telanpalautuksella ja rivinsiirrolla, pilkuilla erotettuja arvoja, merkkijonoja lainausmerkeissä – joissa saa olla pilkkuja – ja Control-Z tiedoston lopun merkkinä. Käsikirja lisää, että tällaisia tietoja voitiin myös tuottaa keskustietokoneella ja ladata työpöydälle.
Sama käsikirja kertoo kompromissin, joka määrittää muotoa yhä. Kaavoja ei lähetetä CSV-tiedostoon; ”vain ne arvot, jotka näkyvät näytöllä muunnoksen hetkellä”, lähetetään. Muunna taulukko CSV:ksi ja takaisin, ja kaavat ovat poissa. CSV:tä ei koskaan tarkoitettu korvaamaan taulukkoa. Se oli pienin yhteinen nimittäjä, jonka avulla taulukkolaskentaohjelma, tietokanta, BASIC-ohjelma ja keskustietokone pääsivät yksimielisyyteen riveistä ja sarakkeista.
Miten tavut toimivat
CSV koostuu pelkistä merkeistä. Jokainen tietue on rivi, joka klassisesti päättyy telanpalautukseen ja rivinsiirtoon (CRLF, kaksi ohjausmerkkiä, joilla DOS ja Windows päättävät rivin), vaikka jotkin ohjelmat kirjoittavat pelkän rivinsiirron. Kentät erotetaan pilkuilla. Kenttä voi olla lainausmerkeissä, ja sen on oltava, jos se sisältää pilkun, lainausmerkin tai rivinvaihdon; lainausmerkki tällaisen kentän sisällä kahdennetaan (""). Ensimmäinen rivi voi olla sarakkeiden nimet sisältävä otsikkorivi, mutta mikään tiedostossa ei kerro, onko se. Eikä mikään kerro, mitä arvot tarkoittavat: 00123, 1-2 ja MARCH1 ovat pelkkää tekstiä, kunnes ohjelma päättää toisin.
Tiedosto ei myöskään kerro käyttämäänsä merkistökoodausta – tavujen ja kirjainten vastaavuutta. Vanhemmat CSV:t kirjoitettiin usein Windowsin tai DOSin yksitavuiseen, koneen kieleen sopivaan koodisivuun; uudemmat ovat yleensä UTF-8:aa, Unicode-koodausta, jolla verkko toimii. Tiedostoa lukevan ohjelman on arvattava – siksi BOM on Excelille tärkeä, ja siksi aksentteja, ä-, ö- ja å-kirjaimia tai aasialaisia kirjoitusjärjestelmiä sisältävät nimet hajoavat ensimmäisinä, kun CSV siirtyy järjestelmästä toiseen.
2005: RFC 4180 kirjaa säännöt ylös
2000-luvun alussa CSV oli kaikkialla eikä sitä ollut määritelty missään. Lokakuussa 2005 IETF (Internet Engineering Task Force, internetstandardeja laativa elin) julkaisi RFC 4180 -dokumentin ”Common Format and MIME Type for Comma-Separated Values (CSV) Files”, jonka kirjoitti Yakov Shafranovich. Johdanto on suora: ”Yllättäen tätä muotoa, vaikka se on hyvin yleinen, ei ole koskaan dokumentoitu virallisesti.” Muistio kuvaa ”muodon, jota useimmat toteutukset näyttävät noudattavan” – CRLF-rivinvaihdot, valinnaisen otsikkorivin, pilkut, lainausmerkkisäännöt – ja rekisteröi text/csv:n IANAlle, mediatyyppien luetteloa ylläpitävälle elimelle, valinnaisin parametrein charset ja header. Se jopa toteaa, että ”jotkin ohjelmat, kuten Microsoft Excel, eivät käytä lainausmerkkejä lainkaan”.
RFC 4180 on tiedottava RFC; se toteaa itse, ettei se ”määrittele minkäänlaista internetstandardia”. Myöhempi työ rakentui sen ympärille korvaamatta sitä: 2014 RFC 7111 määritteli, miten verkko-osoite voi osoittaa text/csv-tiedoston tiettyihin riveihin, sarakkeisiin tai soluihin, ja W3C:n työryhmä CSV on the Web, joka lopetettiin 2016, julkaisi suositukset CSV:n sarakkeiden – myös niiden tyyppien – kuvaamisesta erillisessä metatietotiedostossa. Itse CSV:ssä niitä ei vieläkään ole.
Kun arvaus menee pieleen: geenit, päivämäärät ja kadonneet rivit
Parhaiten dokumentoitu uhri on biologia. 2004 Barry Zeeberg kollegoineen raportoi BMC Bioinformatics -lehdessä, että Excelin oletusmuunnokset muuttivat geenien nimiä: kasvunrajoitegeeni DEC1 muuttui muotoon ”1-DEC”, ja RIKEN-kloonitunnisteista, kuten 2310009E13, tuli luku 2,31E+13 – muunnoksia, joita he kutsuivat peruuttamattomiksi. 2016 Mark Ziemann, Yotam Eren ja Assam El-Osta kävivät läpi 18 tieteellisen lehden vuosina 2005–2015 julkaistut Excel-liitetiedostot ja löysivät geenien nimien virheitä 704 artikkelin tiedostoista – 19,6 % artikkeleista, joissa oli geeniluetteloita Excelissä. 2020 ihmisen geenisymbolit hyväksyvä HUGO Gene Nomenclature Committee (HGNC) julkaisi ohjeet, jotka vahvistivat, että kaikki automaattisesti päivämääriksi muuttuneet symbolit oli muutettu vuoden 2019 aikana: SEPT1 on nyt SEPTIN1 ja MARCH1 on nyt MARCHF1.
CSV oli myös erään kansanterveyden häiriön alussa. 25. syyskuuta ja 2. lokakuuta 2020 välisenä aikana 15 841 positiivista covid-19-tapausta Englannissa puuttui päivittäisistä luvuista. Public Health England (PHE) kertoi, että osa tiedostoista oli ylittänyt tulokset keskusjärjestelmiin lataavan prosessin enimmäiskoon. BBC raportoi, että testausyritykset olivat toimittaneet tuloksensa CSV-tiedostoina ongelmitta, mutta PHE:n automaattinen prosessi siirsi ne vanhan XLS-muodon Excel-pohjiin, joihin mahtuu vain noin 65 000 riviä; koska testiä kohden oli useita rivejä, kukin pohja täyttyi noin 1 400 tapauksen kohdalla ja loput jäivät pois.
Lopulta Microsoft muutti ohjelmistoa eikä oletusasetuksia. Lokakuussa 2023 Excel-tiimi ilmoitti, että automaattisen tietojen muuntamisen asetukset olivat yleisesti saatavilla Windowsille (versio 2309 tai uudempi) ja Macille (16.77 tai uudempi): valintaruudut etunollille, 15 numeroon katkaisemiselle, E-kirjaimelle ja ”peräkkäisten kirjainten ja numeroiden” muuntamiselle päivämääriksi sekä valinnainen varoitus, kun .csv- tai .txt-tiedostoa ollaan muuntamassa. Muunnokset pysyvät päällä, kunnes poistat ne käytöstä.
Säilytä alkuperäinen CSV
Kun Excel on muuntanut sarakkeen ja tallennat tiedoston päälle, CSV sisältää muutetut arvot; alkuperäistä tekstiä ei voi palauttaa siitä. Työskentele kopion parissa ja säilytä koskematon vienti muokkaamasi tiedoston rinnalla.
Miksi .csv-tiedostoja on yhä levyillä vuonna 2026
CSV on elänyt kauemmin kuin sen tuottaneet järjestelmät, koska se oli varauloskäynti. Pankit tarjoavat tiliotteita CSV:nä, vanhat kirjanpito- ja jäsenrekisteriohjelmat vievät tietueensa sillä tavalla, laboratoriolaitteet ja tiedonkeruulaitteet kirjoittavat sitä, ja vuosikymmenten tietokantasiirrot ovat kulkeneet sen kautta. Monet näistä tiedostoista ovat nyt vanhoja tiedostoja: vientejä ohjelmista, jotka eivät enää toimi, kirjoitettuja vanhaan koodisivuun, puolipisteillä tai pilkuilla sen mukaan, miten PC oli asetettu, ja täynnä postinumeroita, osanumeroita ja tunnisteita, jotka nykyaikainen taulukkolaskentaohjelma tulkitsee hiljaa uudelleen ensimmäisellä kaksoisnapsautuksella.
Legacy File Converter luettelee pilkuilla erotetut arvot (.csv) taulukkomuotojen joukossa Tuetut tiedostotyypit -sivullaan ja muuntaa ne omalla Windows-tietokoneellasi muotoihin XLSX, PDF, Markdown tai HTML – mitään ei ladata palvelimelle, millä on merkitystä, kun vienti sisältää pankki- tai jäsentietoja. Tarkista jälkeenpäin esimerkiksi postinumero-, pitkät tunniste- ja päivämääräsarakkeet alkuperäistä tiedostoa vasten. Muista varhaisista tavoista vaihtaa taulukkotietoja, katso Historiaoppitunti: Mikä on .dif-tiedosto? ja Historiaoppitunti: Mikä on .slk-tiedosto?; covid-19-tarinan binäärisestä työkirjasta, katso Historiaoppitunti: Mikä on .xls-tiedosto?.
Aiheeseen liittyvää
Valmis avaamaan vanhat tiedostosi?
Aloita ilmaiseksi ja avaa sitten rajattomat muunnokset kertamaksullisella $79.95 Standard-lisenssillä. Lataa Windows-asennusohjelma – kaikki ominaisuudet jopa 10 tiedostolle.
Ilmainen kokeiluversio
Sovelluksen kaikki ominaisuudet · jopa 10 tiedostoa
Windows 10 tai 11
Ilmainen kokeiluversio – muunna enintään 10 tiedostoa. Lataa Windows-asennusohjelma ja muunna paikallisesti tietokoneellasi.
Suora Windows-asennusohjelma · offline-MSI
Onko tämä turvallinen? — julkaisija, asennusohjelma ja SmartScreen-ohjeet
Vaatii Windows 10:n tai 11:n. Ei tilauksia.