How to generate a CSV file
- Pick a preset (Users, Orders, Products, Employees or Web server log), or edit the Columns box yourself.
- Write one column per line as
name:type, for exampleage:int:18:80orstatus:pick:open|closed. - Set Rows (1 to 10,000), the Delimiter and the Line endings. Untick Include a header row if your importer adds its own.
- Type a Seed to get identical data every time, or leave it blank for new random data.
- Press Copy or Download .csv. With a Tab delimiter the file is saved as .tsv.
Column types
uuid,name,first,last: a version 4 ID, or common English names.email: first.last plus a number at example.com, a domain reserved for documentation, unique within the file.phone: (212) 555-0142 style. The 555-0100 to 555-0199 block is reserved for fiction, so it never rings a real person.int:min:maxandfloat:min:max:decimals: defaults are 0, 100 and 2 decimals. A minimum equal to the maximum is allowed.date:from:toanddatetime:from:to: dates as YYYY-MM-DD, default 2000-01-01 to 2025-12-31. Datetimes are UTC, like 2026-01-03T12:07:06Z.seq:start:stepcounts up row by row.pick:a|b|cchooses from your list, and repeating a value weights it.ipgives a random public-looking IPv4 address,ip:privatestays in 10.x, 172.16 to 172.31 and 192.168. Alsobool,wordandsentence.
Worked example with a seed
Keep the Users preset, 50 rows, comma and header on, then type 2026 in Seed. The status line reads "50 rows by 7 columns, 5.0 KB, seed "2026"" and the file starts:
id,name,email,age,created,score,active 06ba0f80-ccf4-4366-a849-7924699e8198,David White,anthony.brown48@example.com,33,2022-09-11,66.85,false
The age sits between 18 and 80, the score between 0 and 100 with two decimals, and the same seed returns the same 50 rows on any device.
Limits and edge cases
A value containing the delimiter, a double quote or a line break is wrapped in double quotes with inner quotes doubled, as RFC 4180 describes. The limits are 10,000 rows, 100 columns and 1,000,000 cells per file. Every bad line is listed at once (unknown type, minimum above maximum, impossible date) and nothing is generated until the columns are valid. The download adds a UTF-8 byte order mark only when the file contains non-ASCII characters, such as accents in a pick list, so Excel shows them correctly. Turn the result into JSON with the CSV to JSON converter, or add addresses from the address generator.
Frequently asked questions
Why does Excel put everything in one column?
Excel uses the list separator from your regional settings, and many European locales expect a semicolon. Regenerate with the Semicolon delimiter, or import through Data, then From Text/CSV, and choose the delimiter yourself.
Can I generate exactly the same CSV again?
Yes. Type any word or number in the Seed box. The same seed with the same columns, rows and delimiter returns identical data, which is handy for tests and bug reports.
Are the emails and phone numbers real?
No. Emails use example.com, a domain reserved for documentation, and phone numbers use the 555-0100 to 555-0199 block that is reserved for fictional use, so nothing can reach a real person.
How many rows can I generate at once?
Up to 10,000 rows, 100 columns and 1,000,000 cells in one file. For a bigger dataset, generate several files and change the start value of a seq column so the IDs do not overlap.
Sources: RFC 4180, Common Format and MIME Type for CSV Files; RFC 2606, Reserved Top Level DNS Names; 555 (telephone number).