Free CSV test files and sample generator
Tabular plain-text data. Perfect for spreadsheets, bulk imports and quick data seeding.
What is a .csv file?
CSV: Comma-Separated Values. CSV is the lingua franca of data import: every spreadsheet, database and BI tool reads it. Its looseness is exactly what makes it worth testing, quoting, embedded commas, line endings and encoding are all places importers break.
Why generate a test CSV file?
- Test a bulk-import feature with a file far larger than anything you would paste by hand.
- Check row-count limits, header detection and column-type inference in an importer.
- Verify your upload path handles a file that is valid CSV but enormous, or structurally broken.
What you can put inside a .csv file
You get 4 content options for CSV, so the file holds something meaningful rather than random padding: Text columns, Numeric columns, Mixed columns, Records with header. Pick several and they are merged into one file, with a section, sheet, slide or folder for each.
How a .csv file is identified
A .csv file has no signature at the start. A text format has no identifying leading bytes, so the extension and the reported media type are the only claims about it until a parser actually reads it, which is why validating uploads by extension alone is unsafe.
How the size lands on the exact byte
Rows and lines are generated to fill the target, and the last line is padded to land on the exact byte.
Negative testing with broken CSV files
- Invalid. Identifiable, but wrong inside, so it fails during parsing.
- Corrupted. The leading bytes are destroyed. Same length as the valid file.
- Incomplete. Truncated part-way, so it is genuinely shorter.
- Empty. Chosen under Content rather than File Condition: valid structure, no data.
Which failure to reach for, and what to assert for each, is covered in how to make a corrupted file for testing. For upload limits and type checks see testing file upload validation, and for this format's encodings, UTF-16 and BOM test files.
Sample CSV content
id,name,email 1,Test User,test@example.com 2,Jane Doe,jane@example.com
This shows the shape of the file. Your download is generated fresh at the size you choose, so the values will differ.
How to open and verify the file
Open in Excel, Google Sheets or LibreOffice Calc, or read with `pandas.read_csv()` / `csv.reader` in Python.
Media type text/csv · extension .csv · category Data
Generate a .csv file → · questions about sizes, privacy or cost are answered on the site FAQ.
Frequently asked questions about CSV files
What identifies a .csv file?
Nothing at the start of the file does. A text format has no identifying leading bytes, so the extension and the reported media type are the only claims about it until a parser actually reads it, which is why validating uploads by extension alone is unsafe.
How can a .csv file be an exact number of bytes?
Rows and lines are generated to fill the target, and the last line is padded to land on the exact byte.
What can go inside the CSV file?
There are 4 content options for .csv: Text columns, Numeric columns, Mixed columns, Records with header. Choose more than one and they are combined into a single file, a section, sheet, slide or folder per option, rather than downloaded separately.
Can I download several broken CSV files at once?
Yes, select more than one File Condition and you get one ZIP containing a .csv per condition, each named after its condition.
Can the CSV file use UTF-16 or a byte-order mark?
Yes. .csv is a text format, so it can be generated as UTF-8, UTF-8 with a byte-order mark, UTF-16 LE or UTF-16 BE. The body is shortened before re-encoding so the finished file still lands on the exact size you asked for. Note that a UTF-16 file always has an even byte count.
How do I open or verify the CSV file?
Open in Excel, Google Sheets or LibreOffice Calc, or read with pandas.read_csv() / csv.reader in Python.