Skip to content

CSV bestandsformaat

CSV staat voor Comma Separated Values. CSV is een bestandsformaat voor het opslaan van data in tekstvorm en bestanden worden vaak gebruikt om data uit te wisselen tussen applicaties. CSV bestanden kunnen worden geopend in een spreadsheet programma als Excel.

Een CSV bestand bestaat uit een aantal regels. Elke regel bevat een aantal waarden die gescheiden zijn door een komma. De eerste regel van het bestand bevat de namen van de kolommen. De volgende regels bevatten de waarden voor elke kolom. Bijvoorbeeld:

naam,leeftijd,woonplaats
Jan,25,Utrecht
Piet,30,Amsterdam

CSV files zijn vrij makkelijk te lezen en te schrijven. Het nadeel van CSV files is dat ze niet goed om kunnen gaan met data die meerdere regels beslaat of data die komma’s bevat. In een aantal platformen zit de mogelijkheid om CSV files te lezen en te schrijven ingebouwd. In andere platformen zal je gebruik moeten maken van een library.

In p5.js kan je CSV data omzetten naar een JavaScript object met de loadTable() functie.

let table;

function preload() {
    table = loadTable('data.csv', 'csv', 'header');
}

function setup() {
    for (let row of table.rows) {
        console.log(row.get('naam'));
    }
}

Je kan een JavaScript object omzetten naar CSV met de saveTable() functie.

let table;

function setup() {
    table = new p5.Table();
    table.addColumn('naam');
    table.addColumn('leeftijd');
    table.addColumn('woonplaats');
    table.addRow(['Jan', '25', 'Utrecht']);
    table.addRow(['Piet', '30', 'Amsterdam']);
    saveTable(table, 'data.csv', 'csv');
}

In Python kan je CSV data omzetten naar een Python object met de csv.reader() functie.

import csv

with open('data.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in reader:
        print(', '.join(row))

Je kan een Python object omzetten naar CSV met de csv.writer() functie.

import csv

with open('data.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    writer.writerow(['naam', 'leeftijd', 'woonplaats'])
    writer.writerow(['Jan', '25', 'Utrecht'])
    writer.writerow(['Piet', '30', 'Amsterdam'])

In c# kan je CSV data omzetten naar een c# object met de TextFieldParser class.

using Microsoft.VisualBasic.FileIO;

using (TextFieldParser parser = new TextFieldParser("data.csv"))
{
    parser.TextFieldType = FieldType.Delimited;
    parser.SetDelimiters(",");
    while (!parser.EndOfData)
    {
        string[] fields = parser.ReadFields();
        foreach (string field in fields)
        {
            Console.WriteLine(field);
        }
    }
}

Je kan een c# object omzetten naar CSV met de StreamWriter class.

using System.IO;

using (StreamWriter writer = new StreamWriter("data.csv"))
{
    writer.WriteLine("naam,leeftijd,woonplaats");
    writer.WriteLine("Jan,25,Utrecht");
    writer.WriteLine("Piet,30,Amsterdam");
}

In Java kan je CSV data omzetten naar een Java object met de CSVReader class van de openCSV library.

import com.opencsv.CSVReader;

try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) {
    String[] nextLine;
    while ((nextLine = reader.readNext()) != null) {
        System.out.println(Arrays.toString(nextLine));
    }
}

Je kan een Java object omzetten naar CSV met de CSVWriter class.

import com.opencsv.CSVWriter;

try (CSVWriter writer = new CSVWriter(new FileWriter("data.csv"))) {
    String[] header = {"naam", "leeftijd", "woonplaats"};
    writer.writeNext(header);
    String[] row1 = {"Jan", "25", "Utrecht"};
    writer.writeNext(row1);
    String[] row2 = {"Piet", "30", "Amsterdam"};
    writer.writeNext(row2);
}