What is a CSV file?
A CSV file is plain text where each line is a record and fields are separated by a delimiter, usually a comma. RFC 4180 describes the common rules: quote a field that holds the delimiter, a quote or a line break, and double any quote inside it.
CSV looks simple, which is why importers break on it. Excel on Windows needs a byte order mark to read UTF-8 accents, some parsers choke on a line break inside a quoted cell, and a cell that starts with = can run as a formula when the file is opened in a spreadsheet.
Anatomy of a CSV file
header rowOptional first line with the column namesdelimiterComma, semicolon (common in Europe), tab or pipe"quoted field"Needed when a value holds the delimiter, a quote or a line break""A quote inside a quoted field is written twiceCRLFRFC 4180 line ending; many tools also accept LFBOMOptional EF BB BF bytes that tell Excel the file is UTF-8
What you can generate
- Quotes, embedded delimiters and line breaks inside cells
- Empty cells, leading zeros (00501) and spaces around values
- Unicode names, cities and emoji, with or without a UTF-8 BOM
- Formula-like cells (=1+1, +SUM, @) for CSV injection tests
- Ragged rows with a missing or extra field
- Every field quoted, or quoting switched off to make a broken file
- Up to 1,000,000 rows and 40 columns, written in a background worker
How to make one
- Open the CSV generator, or start from a preset above.
- Set the size and switch on the edge cases you need; the preview and size estimate follow every change.
- Generate, then download. The file is made in your browser, and the same preset and seed always give you the same file.
Questions
Yes, unless you ask for a broken one. Fields that need it are quoted, inner quotes are doubled, and lines end in CRLF by default. Choose ragged rows or switch quoting off when you want a file that should fail.
Excel on Windows reads a CSV without a BOM in the local code page, so ö becomes ö. With the BOM switched on, Excel reads the file as UTF-8.
Yes. The generator is seeded: the same settings and seed give the same bytes, and the preset link carries both.
They test CSV injection handling. Cells starting with =, +, - or @ can run as formulas when opened in a spreadsheet, so exporters often escape them.