Direct naar de tool
ViewCSV
Niets wordt geüpload

CSV-generator

Voorbeeld
#idnameemailsignup_dateplanamount
11Julia van den Bergtaylor.harbor1@example.test2025-03-17Free315.13
22Lucas de Boertaylor.velvet2@example.test2025-07-22Free485.36
33Finn Mulderquinn.orbit3@example.test2025-02-26Free397.70
44Sem Meijermorgan.lumen4@example.test2024-09-28Team258.90
55Noah Visseravery.atlas5@example.test2024-01-11Free250.80
66Sem Jansenjamie.signal6@example.test2024-08-18Free319.01
77Luuk Mulderavery.cedar7@example.test2024-10-17Free162.79
88Mila de Vriesriley.atlas8@example.test2024-11-26Free476.86
99Noah Mulderavery.copper9@example.test2024-07-19Free15.43
1010Mila de Boerriley.velvet10@example.test2024-09-20Free246.07
1111Julia Janssenavery.cobalt11@example.test2024-09-25Pro414.32
1212Lucas Jansenmorgan.signal12@example.test2025-04-20Free388.35
1313Daan de Boertaylor.harbor13@example.test2025-02-17Free193.23
1414Sophie Vissermorgan.quartz14@example.test2024-02-19Free425.88
1515Noah de Boerriley.atlas15@example.test2025-06-29Free303.49
1616Noah de Vriesquinn.ember16@example.test2025-01-17Free269.41
1717Luuk van Dijkjamie.copper17@example.test2025-03-14Free339.44
1818Lucas Jansenquinn.maple18@example.test2025-08-17Pro160.18
1919Tess de Jongquinn.prism19@example.test2025-09-05Pro444.79
2020Sophie de Vriesalex.copper20@example.test2024-04-18Pro321.08
2121Zoë Visserjordan.cedar21@example.test2025-05-06Pro259.88
2222Zoë van Dijkjordan.maple22@example.test2024-11-13Pro450.71
2323Lucas Visserjamie.harbor23@example.test2025-02-26Free243.05
2424Sophie Janssenmorgan.delta24@example.test2024-02-22Free59.72
2525Finn de Jongjamie.orbit25@example.test2024-12-20Free90.04
2626Noah Janssencasey.paper26@example.test2024-01-11Pro454.97
2727Tess Smitjordan.tundra27@example.test2025-03-01Free468.54
2828Lucas de Jongtaylor.cedar28@example.test2024-05-07Pro399.73
2929Sophie de Vriesjamie.signal29@example.test2024-07-01Free339.48
3030Lucas Visseralex.meadow30@example.test2025-11-09Pro267.97

Voorbeeld van de eerste 100 van 100 rijen.

Stel tot 100 kolommen in, kies voor elke kolom een soort gegevens, en geef een aantal rijen (1 tot 1.000.000) en een seed op. Dezelfde seed en kolominstellingen geven altijd dezelfde rijen, in elke browser. Je kunt een testbestand dus opnieuw maken in plaats van het te bewaren. Namen, e-mailadressen en telefoonnummers zijn verzonnen: e-mailadressen eindigen op @example.test, Engelstalige telefoonnummers vallen in de reeks 555. Het genereren gebeurt in je browser; er wordt niets geüpload.

Zo maak je een CSV-bestand

  1. Stel het aantal rijen in (1 tot 1.000.000) en een seed. De startopzet heeft zes kolommen: een oplopende id, een volledige naam, een e-mailadres, een aanmelddatum in 2024–2025, een abonnement dat in de verhouding 6:3:1 wordt gekozen uit Free, Pro of Team, en een bedrag van 0 tot 500 met twee decimalen.
  2. Voeg kolommen toe, verwijder of hernoem ze, en kies voor elke kolom een soort gegevens. Elke kolomnaam moet ingevuld en uniek zijn.
  3. Stel desgewenst per kolom een aandeel lege cellen in of eis unieke waarden. Genereer daarna het bestand en download het.

De rijen worden in delen in een achtergrondproces geschreven, niet als één enorme tekenreeks. Een bestand van een miljoen rijen laat de pagina dus niet vastlopen, en met annuleren stopt de taak. Eén uitvoerbestand is maximaal 4 GB.

Soorten gegevens

VolgnummerTelt vanaf een beginwaarde (standaard 1) met een stap (standaard 1). Met een optionele breedte krijg je nummers als 000001; negatieve getallen worden nooit aangevuld.
UUIDOpbouw van versie 4 uit RFC 9562 (xxxxxxxx-xxxx-4xxx-[89ab]xxx-…), getrokken uit de generator met seed. Reproduceerbaar, dus niet geschikt als geheim of beveiligingstoken.
Voornaam, achternaam, volledige naamVeelvoorkomende namen voor de taal van de interface. Chinese, Japanse en Koreaanse volledige namen staan met de familienaam vooraan en zonder spatie.
E-mailname.word<row>@example.test, bijvoorbeeld casey.maple1@example.test. Door het rijnummer is elk adres uniek. Het adres wordt niet afgeleid van de kolom met namen.
TelefoonnummerEen patroon waarin elke # een cijfer wordt. Laat het leeg voor de standaard van de taal: in het Engels is dat +1 555-###-####, in het Nederlands +31 20 ### ####.
Bedrijf, plaats, landVerzonnen bedrijfsnamen en echte plaatsnamen voor de taal van de interface; het land wordt gekozen uit een vaste lijst van 20.
Geheel getalEen geheel getal tussen het minimum en het maximum, die er allebei bij horen. Beide grenzen zijn verplicht en moeten binnen ±9.007.199.254.740.991 blijven: de grootste gehele getallen die JavaScript exact opslaat.
Decimaal getalEen getal tussen het minimum en het maximum met 0 tot 10 decimalen, bijvoorbeeld 114.71.
true / falsetrue of false, met gelijke kans.
Datum, datum en tijdEen willekeurige dag tussen twee datums in de vorm YYYY-MM-DD, die er allebei bij horen. ‘Datum en tijd’ voegt een willekeurige UTC-tijd toe: 2026-01-04T09:17:35Z.
Een van een lijstEén waarde per regel, eventueel met een gewicht na een dubbele punt: Free:6, Pro:3, Team:1 kiest ongeveer 60% van de keren Free. Regels zonder gewicht tellen als 1.
PatroonEen sjabloon waarin # een cijfer is, ? een hoofdletter en * een cijfer of hoofdletter: SKU-####-?? geeft SKU-6836-LU. Alle andere tekens worden overgenomen.
Woorden1 tot 20 woorden (standaard 3) uit een vaste lijst van 20 eenvoudige Engelse woorden, als opvultekst.
Vaste waardeDezelfde tekst in elke rij.

Seeds en reproduceerbaarheid

De seed mag elke tekst zijn. Elke kolom trekt uit een eigen willekeurige reeks die is afgeleid van de seed en de kolomnaam. Daardoor geldt:

  • dezelfde seed, hetzelfde aantal rijen en dezelfde kolominstellingen geven elke keer en in elke browser een byte voor byte identiek bestand;
  • andere kolommen toevoegen, verwijderen of verplaatsen verandert de waarden van een kolom niet, maar een kolom hernoemen wel;
  • vraag je meer rijen, dan blijven de eerdere rijen gelijk en komen er nieuwe bij;
  • de taal van de interface verandert namen, plaatsen, bedrijven en de standaardnotatie van telefoonnummers, maar geen getallen, datums, keuzes of e-mailadressen.

Lege cellen gebruiken een aparte reeks. Een lege cel verbruikt geen waarde. Verander je het percentage lege cellen, dan schuift dus op welke waarden in de latere rijen van die kolom terechtkomen.

Lege cellen en unieke waarden

Lege cellen is een percentage van 0 tot 100 per kolom: elke cel blijft met die kans leeg. Zo test je hoe een import omgaat met ontbrekende waarden.

Bij unieke waarden wordt een waarde opnieuw getrokken tot hij nog niet in die kolom voorkomt. Na 1.000 pogingen stopt het met een foutmelding die de kolom noemt. Instellingen waarbij uniek zijn onmogelijk is, worden vooraf geweigerd: een bereik van gehele getallen met minder getallen dan rijen, of minder keuzes dan rijen. Andere soorten kunnen halverwege alsnog opraken, bijvoorbeeld een unieke volledige naam na ongeveer 144 rijen in het Engels (12 voornamen × 12 achternamen). Kolommen met een volgnummer, UUID of vaste waarde slaan de controle over, en lege cellen tellen niet als waarde.

Fouten in de instellingen

  • Het aantal rijen moet een geheel getal van 1 tot 1.000.000 zijn, en er moeten 1 tot 100 kolommen zijn.
  • Een kolomnaam is leeg of komt twee keer voor: elke kolomnaam moet ingevuld en verschillend zijn.
  • Kolommen met gehele of decimale getallen hebben zowel een minimum als een maximum nodig, waarbij het minimum niet boven het maximum ligt.
  • Datumbereiken schrijf je als YYYY-MM-DD, zoals 2024-01-01; 2024/01/01 of 01/02/2024 wordt geweigerd.
  • Een patroon moet minstens één #, ? of * bevatten; gebruik anders een kolom met een vaste waarde.
  • Een keuzelijst heeft minstens één waarde nodig met een gewicht boven nul.

Voorbeeld

Vijf rijen met de seed demo-2026: een volgnummer vanaf 1001, aangevuld tot 6 cijfers, een volledige naam, een e-mailadres, een gewogen keuze, een decimaal getal van 0 tot 250 met 40% lege cellen, en het patroon SKU-####-??. Draai je het opnieuw met dezelfde instellingen, dan krijg je precies deze rijen. Regeleinden zie je hier als gewone nieuwe regels.

CSV
rows: 5    seed: demo-2026    language: English
customer_id  sequence  start 1001, width 6
name         full name
email        email
plan         choice    Free:6 / Pro:3 / Team:1
mrr          decimal   0–250, 2 places, 40% blank
sku          pattern   SKU-####-??
CSV
customer_id,name,email,plan,mrr,sku
001001,Mary Brown,casey.maple1@example.test,Free,,SKU-6836-LU
001002,Ethan Davis,taylor.copper2@example.test,Pro,,SKU-8060-HR
001003,Ethan Clark,morgan.falcon3@example.test,Team,114.71,SKU-1401-TZ
001004,Olivia Davis,jordan.harbor4@example.test,Pro,91.82,SKU-8840-PT
001005,Mia Taylor,casey.prism5@example.test,Free,6.99,SKU-6878-OZ

Vragen en antwoorden

Kan ik de gegenereerde gegevens veilig delen?

Er staan geen echte personen in: namen zijn willekeurige combinaties van gangbare namen, e-mailadressen gebruiken het gereserveerde domein .test (RFC 2606) en Engelstalige telefoonnummers gebruiken 555. De plaatsnamen zijn wel echte plaatsen.

Krijgt een collega hetzelfde bestand?

Ja, als die dezelfde seed, hetzelfde aantal rijen, dezelfde interfacetaal en dezelfde kolominstellingen gebruikt, inclusief de kolomnamen. De generator gebruikt een eigen algoritme met seed, niet de willekeurige getallen van de browser.

Heb ik een groot bestand nodig of een klein testbestand?

Wil je een paar beschreven rijen met bekende valkuilen, gebruik dan de voorbeeld-CSV-bestanden. Kies de generator als je volume nodig hebt, je eigen kolomnamen of een bepaalde mix van soorten gegevens.

Standaarden en bronnen