XLSX vs CSV: wat verandert er
Begrijp voor het converteren wat CSV bewaart en wat het verwijdert:
| Functie | XLSX | CSV |
|---|---|---|
| Celwaarden (tekst, getallen) | Ja | Ja |
| Formules | Ja (opgeslagen) | Nee (alleen berekende waarden) |
| Opmaak (vet, kleuren) | Ja | Nee |
| Meerdere bladen | Ja | Nee (één blad per bestand) |
| Grafieken en afbeeldingen | Ja | Nee |
| Gegevenstypen (datums, valuta) | Ja (getypte cellen) | Alleen platte tekst |
| Bestandsgrootte (1000 rijen) | ~50–200 KB | ~10–50 KB |
| Universele compatibiliteit | Vereist Excel/reader | Elke teksteditor |
Als je alleen de ruwe gegevens nodig hebt — voor databaseimport, gegevensanalyse of platformonafhankelijk delen — is CSV de juiste keuze. Als je opmaak, formules of meerdere bladen wilt bewaren, houd je het XLSX-formaat aan.
Methode 1: Online converter (CleverUtils)
De snelste methode. Geen software om te installeren, werkt op elk apparaat met een browser.
- Ga naar cleverutils.com/xlsx-to-csv
- Klik op Kies XLSX-bestand of sleep je spreadsheet naar het uploadveld
- Klik op Converteer
- Download het resulterende CSV-bestand
Het beste voor: Snelle eenmalige conversies. Geen installatie nodig. Bestanden worden versleuteld geüpload en automatisch verwijderd binnen 2 uur.
Methode 2: Microsoft Excel
Als je Excel al hebt geïnstalleerd, kun je rechtstreeks exporteren:
- Open het
.xlsx-bestand in Excel - Als de werkmap meerdere bladen heeft, klik je op het tabblad van het blad dat je wilt exporteren
- Ga naar Bestand → Opslaan als (of Bestand → Een kopie opslaan in nieuwere versies)
- Selecteer in de vervolgkeuzelijst “Opslaan als type” de optie CSV (gescheiden door komma's) (*.csv)
- Kies de opslaglocatie en klik op Opslaan
- Excel waarschuwt dat sommige functies niet compatibel zijn met CSV — klik op Ja om door te gaan
Excel biedt in het dialoogvenster Opslaan als meerdere CSV-varianten aan:
| Optie | Codering | Scheidingsteken | Het beste voor |
|---|---|---|---|
| CSV (gescheiden door komma's) | Systeemstandaard (vaak Windows-1252) | Komma | Engelstalige gegevens |
| CSV UTF-8 (gescheiden door komma's) | UTF-8 met BOM | Komma | Internationale tekens |
| CSV (Macintosh) | Mac Roman | Komma | Oudere macOS-apps |
| CSV (MS-DOS) | OEM/DOS-codepagina | Komma | Oudere DOS-programma's |
Tip: Kies altijd CSV UTF-8 als je gegevens tekens met accenten, CJK-tekst of andere niet-ASCII-symbolen bevatten. De gewone optie “CSV (gescheiden door komma's)” gebruikt een landspecifieke codering die speciale tekens op andere systemen kan beschadigen.
Methode 3: Google Sheets
Gratis en beschikbaar op elk platform met een browser:
- Open sheets.google.com en upload je XLSX-bestand (Bestand → Openen → Uploaden)
- Google Sheets importeert de werkmap en bewaart de meeste opmaak visueel
- Selecteer het bladtabblad dat je wilt exporteren
- Ga naar Bestand → Downloaden → Door komma's gescheiden waarden (.csv)
- Het huidige blad wordt gedownload als een
.csv-bestand
Google Sheets exporteert CSV altijd in UTF-8-codering, de veiligste keuze voor internationale gegevens. Het scheidingsteken is altijd een komma, ongeacht je landinstellingen.
Methode 4: LibreOffice Calc
LibreOffice is gratis, open-source en beschikbaar op Windows, macOS en Linux. Het geeft je de meeste controle over de CSV-exportinstellingen.
- Open het
.xlsx-bestand in LibreOffice Calc - Ga naar Bestand → Opslaan als
- Selecteer Tekst CSV (.csv) als indeling
- Klik op Tekst CSV-indeling gebruiken wanneer daarom wordt gevraagd
- Configureer in het exportdialoogvenster:
- Tekenset: Unicode (UTF-8)
- Veldscheidingsteken: komma
,(of puntkomma, tab) - Tekstscheidingsteken: dubbele aanhalingstekens
"
- Klik op OK
Batchconversie via de opdrachtregel
LibreOffice ondersteunt de headless-modus (zonder GUI), waardoor het ideaal is voor batchverwerking:
# Converteer één bestand
libreoffice --headless --convert-to csv report.xlsx
# Converteer alle XLSX-bestanden in de huidige map
libreoffice --headless --convert-to csv *.xlsx
# Geef een uitvoermap op
libreoffice --headless --convert-to csv --outdir ./csv-output/ *.xlsx
Opmerking: De headless-modus van LibreOffice exporteert alleen het eerste blad. Gebruik voor werkmappen met meerdere bladen een Python-script (methode 5) of converteer elk blad handmatig.
Methode 5: Python (pandas)
Python met de pandas-bibliotheek is de beste optie voor geautomatiseerde, herhaalbare of batchconversies. Het verwerkt werkmappen met meerdere bladen, codering en aangepaste scheidingstekens van nature.
Basisconversie
import pandas as pd
# Lees het eerste blad en sla op als CSV
df = pd.read_excel("report.xlsx")
df.to_csv("report.csv", index=False, encoding="utf-8-sig")
Converteer alle bladen naar afzonderlijke CSV-bestanden
import pandas as pd
xlsx = pd.ExcelFile("workbook.xlsx")
for sheet_name in xlsx.sheet_names:
df = pd.read_excel(xlsx, sheet_name=sheet_name)
filename = f"{sheet_name}.csv"
df.to_csv(filename, index=False, encoding="utf-8-sig")
print(f"Opgeslagen {filename}")
Meerdere XLSX-bestanden in batch converteren
import pandas as pd
from pathlib import Path
for xlsx_file in Path(".").glob("*.xlsx"):
df = pd.read_excel(xlsx_file)
csv_file = xlsx_file.with_suffix(".csv")
df.to_csv(csv_file, index=False, encoding="utf-8-sig")
print(f"{xlsx_file} → {csv_file}")
Installeren: pip install pandas openpyxl — de openpyxl-engine is vereist voor het lezen van .xlsx-bestanden. Deze wordt automatisch door pandas gebruikt als hij is geïnstalleerd.
Methode 6: Opdrachtregeltools
Voor serveromgevingen, CI/CD-pipelines of gescripte workflows waarbij je geen GUI kunt openen.
ssconvert (Gnumeric)
Een lichte opdrachtregelconverter voor spreadsheets, meegeleverd met Gnumeric:
# Installeren op Ubuntu/Debian
sudo apt install gnumeric
# Converteer één bestand
ssconvert report.xlsx report.csv
# Exporteer alle bladen (maakt report.csv.0, report.csv.1, enz.)
ssconvert -S report.xlsx report.csv
# Converteer alle XLSX-bestanden in batch
for f in *.xlsx; do ssconvert "$f" "${f%.xlsx}.csv"; done
csvkit (in2csv)
Een op Python gebaseerde toolkit speciaal ontworpen voor CSV-bewerkingen:
# Installeren
pip install csvkit
# Converteren (standaard eerste blad)
in2csv report.xlsx > report.csv
# Geef een blad op via naam
in2csv --sheet "Sales Q4" report.xlsx > sales-q4.csv
# Geef alle bladnamen weer
in2csv --names report.xlsx
Veelvoorkomende problemen en oplossingen
Coderingsproblemen (onleesbare tekens)
Het meest voorkomende probleem. Tekens met accenten (é, ü, ñ), CJK-tekst of symbolen zoals € verschijnen als é, ??? of andere onleesbare tekst.
Oorzaak: De CSV is opgeslagen in één codering maar geopend in een andere. Excel op Windows gebruikt standaard de lokale codepagina (bijv. Windows-1252 voor West-Europese talen), niet UTF-8.
Oplossing:
- Sla altijd op als UTF-8 met BOM (byte order mark). De BOM geeft Excel en andere toepassingen aan dat het bestand UTF-8 is.
- In Python: gebruik
encoding="utf-8-sig"(UTF-8 met BOM) in plaats vanencoding="utf-8" - Bij het openen van een CSV in Excel: gebruik de importwizard Gegevens → Uit tekst/CSV, waarmee je de codering kunt selecteren voor het importeren
Problemen met scheidingstekens
Sommige Europese landinstellingen gebruiken puntkomma's (;) in plaats van komma's als CSV-scheidingsteken, omdat komma's in die landinstellingen als decimaalteken worden gebruikt (bijv. 1.234,56 in het Nederlands).
Symptomen: Alle gegevens verschijnen in één kolom bij opening in Excel, of numerieke waarden worden over meerdere kolommen verdeeld.
Oplossing:
- Controleer je systeeminstellingen: Windows-gebruikers met Nederlandse, Duitse, Franse of Italiaanse landinstellingen hebben mogelijk puntkomma's nodig
- In Python:
df.to_csv("file.csv", sep=";")voor uitvoer met puntkomma's als scheidingsteken - In LibreOffice: stel het veldscheidingsteken expliciet in tijdens de export
- Bij het importeren: gebruik de tekstimportwizard en geef het juiste scheidingsteken op
Werkmappen met meerdere bladen
Het CSV-formaat ondersteunt precies één blad per bestand. Bij het converteren van een XLSX-werkmap met meerdere bladen exporteren de meeste tools alleen het eerste (actieve) blad.
Oplossing:
- Exporteer elk blad afzonderlijk met het bovenstaande Python-script voor meerdere bladen
- Gebruik
ssconvert -S, dat automatisch genummerde CSV-bestanden aanmaakt voor elk blad - Schakel in Excel of Google Sheets handmatig van tabblad en exporteer elk blad apart
Datum- en getalopmaak
Datums en getallen kunnen veranderen bij conversie naar CSV, omdat CSV geen gegevenstypen kent. Een datum zoals 2026-03-24 kan 46108 worden (Excel-serienummer) of 24-3-2026 (landafhankelijke indeling).
Oplossing:
- Maak datumkolommen op als tekst in de gewenste indeling voor het exporteren (bijv.
YYYY-MM-DDvoor ISO 8601) - In Python:
df.to_csv(..., date_format="%Y-%m-%d") - Verwijder voor getallen duizendtalscheidingstekens en zorg voor een consistente decimaalnotatie
Welke methode moet je gebruiken?
| Methode | Snelheid | Meerdere bladen | Coderingsbeheer | Batch | Het beste voor |
|---|---|---|---|---|---|
| CleverUtils | Direct | Eerste blad | Automatisch (UTF-8) | Nee | Snelle eenmalige conversies |
| Excel | Snel | Handmatig per blad | 4 opties | Nee | Desktopgebruikers met Excel |
| Google Sheets | Gemiddeld | Handmatig per blad | Alleen UTF-8 | Nee | Chromebook / geen desktopapp |
| LibreOffice | Snel | Eerste blad (CLI) | Volledige controle | Ja (CLI) | Linux-gebruikers, batch via CLI |
| Python | Snel | Alle bladen | Volledige controle | Ja | Ontwikkelaars, automatisering |
| CLI (ssconvert) | Snel | Alle bladen (-S) | Standaard UTF-8 | Ja | Servers, CI/CD-pipelines |