CSV-taulukko (.csv)

RFC Standardi

Comma-Separated Values (CSV) on yleisesti käytetty pelkkä tekstimuoto taulukkotiedolle. Jokainen rivi vastaa tietuetta, ja kentät erotetaan erotinmerkeillä.

Muunna tiedostot muodosta XLSX muotoon CSV

Ilmainen selaimessa toimiva muunnin, jolla voit muuntaa tiedostoja muodosta XLSX muotoon CSV. Muunna tiedostot hetkessä laitteellasi.

Pakkaa CSV verkossa

Yksityisesti - tiedostot eivät koskaan poistu laitteeltasi

Tarkastele tiedostoa ja sen metatietoja

Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat CSV-tiedostot tarkistamalla tiedoston alun binäärisarjan:

Valitse tai pudota tiedostot tähän

Yksityisesti - tiedostot eivät koskaan poistu laitteeltasi

tai liitä Ctrl+V
Tietosuojatakuu: 0 % verkkosiirtoa Ulkoisille palvelimille ei ole ladattu yhtään tavua. Kaikki käsittely tapahtui paikallisesti selaimen hiekkalaatikossa.

Otsaketunniste tavutasolla (tunnistetavut)

Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat CSV-tiedostot tarkistamalla tiedoston alun binäärisarjan:

HEKSADEKSIMAALINEN TUNNISTE (SIJAINTI 0):

Ei kiinteää tunnistetta

ASCII-ESITYSTAPA: Tekstitavuja; merkistökoodaus vaihtelee (usein UTF-8)

Standardointi: RFC 4180 / IETF

Tekniset tiedot

SäiliöarkkitehtuuriErotinmerkeillä eroteltu tasainen tekstitiedosto, joka esittää taulukkomuotoisia tietorivejä ja -sarakkeita
PakkausGzip- ja Deflate-pakkauksella voidaan pienentää toistuvan tekstin kokoa; tulosteen koko riippuu datasta ja asetuksista.
Tavujärjestys (Endianness)UTF-8-tekstivirta (valinnainen UTF-8 BOM EF BB BF, jota Excel käyttää)
VäriavaruudetEi sovellettavissa
Kanavat ja rakenneRivitietueet on erotettu CRLF:llä ja sarakkeet pilkuilla
Suurimmat mitatRajoittamaton; voidaan käsitellä suoratoistona gigatavujen kokoon asti ilman koko tiedoston lataamista muistiin
LäpinäkyvyysEi sovellettavissa
Suoratoisto ja progressiivinen latausKaikki tietoputket tukevat alkuperäistä rivi riviltä tapahtuvaa suoratoistokäsittelyä

Tekninen vertailumatriisi: CSV vs. kilpailijat

Tekninen attribuuttiCSV (Nykyinen)Excel (XLSX)ParquetJSON
TiedostotyyppiPelkkä tekstipohjainen litteä taulukkoPakattu XML-taulukkolaskentaBinäärinen sarakepohjainen tallennusHierarkkinen teksti
Useita laskentataulukoitaEi (vain yksi litteä taulukko)Kyllä (useita työkirjoja ja taulukoita)Osiointipohjainen tallennusSisäkkäiset taulukot ja oliot
TietotyypitTyypittämätön raakatekstiTyypitetyt solut, kaavat, muotoiluTiukat binääriset saraketyypitPerustyypit (merkkijono, numero, totuusarvo)
Big Data -analytiikkaHidas (vaatii jokaisen rivin lukemisen lineaarisesti)Ei sovellu suurille tietoaineistoilleErittäin nopea (sarakkeiden karsinta ja ehtojen siirto alaspäin)Kohtalainen

Yleiset vioittumistavat ja heksadesimaalinen palautusopas

Sarakkeet siirtyvät oikealle tai rivimäärät eivät täsmää.

Perussyy: Tekstikenttä sisältää suojaamattoman pilkun ilman ympäröiviä lainausmerkkejä.

Korjaus: RFC 4180 vaatii, että pilkkuja sisältävät kentät kääritään lainausmerkkeihin: "Smith, John".

Erikoismerkit näkyvät oudoina symboleina (kuten é eikä é) Excelissä.

Perussyy: Excel avasi UTF-8-muotoisen CSV-tiedoston olettaen perinteisen Windows ANSI/CP1252 -merkistökoodauksen.

Korjaus: Lisää 3-tavuinen UTF-8 Byte Order Mark (0xEF 0xBB 0xBF) tiedoston alkuun.

Tietoturva-analyysi ja tiedostojäsentimien hyökkäysvektorit

CSV-tiedostot avautuvat suoraan taulukkolaskentaohjelmissa, kuten Excelissä ja Google Sheetsissä, mikä altistaa käyttäjät kaavainjektiohyökkäyksille (CSV Injection).

Tunnetut hyökkäysvektorit

  • Kaavainjektio: Solut, jotka alkavat merkeillä '=', '+', '-' tai '@', voivat suorittaa taulukkolaskentamakroja tai DDE-komentoja (esim. '=cmd|' /C calc'!A0').
  • Tietoja voidaan vuotaa HYPERLINK()-kaavoilla, jotka lähettävät arkaluonteisia solutietoja etähyökkääjän palvelimille, kun kaavaa napsautetaan.

Tietoturvan parhaat käytännöt: Kun viet käyttäjätietoja CSV-muotoon, lisää heittomerkki (') tai sarkain ennen jokaista solua, joka alkaa merkillä '=', '+', '-' tai '@', jotta Excel pakottaa ne pelkäksi tekstiksi.

Historia ja virstanpylväät

2015W3C Model for Tabular Data and Metadata on the Web standardisoi CSV on the Web (CSVW) -muodon JSON-LD-metatietokuvaajilla.
2005IETF julkaisee RFC 4180 -määrityksen, joka luo virallisen spesifikaation CSV-tiedostoille.
1972IBM Fortran (H Extended) -kääntäjä ottaa käyttöön pilkuilla erotellun syötteen ja tulosteen.

Tärkeimmät edut

  • Äärimmäinen yksinkertaisuus: luettavissa missä tahansa tekstieditorissa ja tuotavissa jokaiseen tietokantaan ja taulukkolaskentaohjelmaan.
  • Erittäin nopea rivi riviltä tapahtuva suoratoisto ilman tarvetta rakentaa täyttä muistiin ladattavaa DOM-puuta.
  • Minimaalinen lisäkuorma: ei monimutkaista tunnistesynteksiä tai skeemamäärityksiä.

Tekniset rajoitukset

  • Ei vakioituja tietotyyppejä: numerot, päivämäärät, totuusarvot ja teksti tallennetaan kaikki raakamuotoisina merkkijonoina.
  • Ei tukea useille laskentataulukoille, solujen muotoilulle, kaavoille tai metatiedoille.
  • Erotinristiriidat (pilkut tekstin sisällä, desimaalipilkut eurooppalaisilla alueasetuksilla) aiheuttavat usein jäsennysvirheitä.

Mielenkiintoisia teknisiä faktoja

  • Monissa Euroopan maissa, joissa pilkkua käytetään desimaalierottimena, käytetään CSV-erottimena pilkun sijasta puolipistettä (;).
  • Microsoft Excel vaati historiallisesti UTF-8 BOM -merkkijonon (0xEF 0xBB 0xBF) näyttääkseen ei-ASCII-merkit oikein.
  • Ison-Britannian terveydenhuoltojärjestelmä NHS menetti kuuluisasti lähes 16 000 COVID-19-jäljitystietuetta vuonna 2020, koska data tuotiin vanhentuneeseen Excel-tiedostomuotoon, jonka datarajoitus oli 65 536 riviä.

Usein kysytyt tekniset kysymykset

Mikä on RFC 4180?

RFC 4180 on IETF:n virallinen CSV-standardi. Se määrää, että pilkkuja, rivinvaihtoja tai lainausmerkkejä sisältävät kentät on ympäröitävä lainausmerkeillä ja sisäiset lainausmerkit on suojattava kahdentamalla ne ("").

Miksi CSV-tiedostot avautuvat viallisilla merkeillä Excelissä?

Microsoft Excelin vanhemmat versiot käyttävät oletusarvoisesti paikallista Windows-koodisivua (kuten Windows-1252) UTF-8:n sijaan, kun CSV-tiedostoja avataan suoraan. UTF-8 BOM (Byte Order Mark) -merkinnän lisääminen tiedoston alkuun pakottaa Excelin purkamaan UTF-8-koodauksen oikein.

Mikä on CSV-injektio (kaavainjektio)?

CSV-injektio tapahtuu, kun epäluotettava käyttäjän syöte, joka sisältää kaavan laukaisevia etuliitteitä ('=', '+', '-', '@'), viedään taulukkolaskentatiedostoon. Kun tiedosto avataan ohjelmassa, kuten Excelissä, taulukkolaskenta suorittaa kaavan tai dynaamisen tiedonvaihdon (DDE) komennon automaattisesti, mikä voi mahdollisesti suorittaa järjestelmäkomentoja tai vuotaa tietoja.