Skip to Content
RowSlice

Free Sample CSV Files

Generate and Download a Sample CSV File

Need a big, realistic CSV to try out an import, a spreadsheet or your own code, without using anyone’s real data? Pick a dataset and a size up to 100 million rows or 20 GB, preview the rows, and download the file. Or download a customer list of 10 to 1 million rows in one click, with nothing to set up.

  • Up to 20 GB
  • Made on your computer
  • Free, no sign-up

In short: RowSlice’s Sample CSV File Generator makes a realistic test CSV of customers, sales orders, employees or products, with up to 100 million rows or a file of up to 20 GB, and shows the first rows before you download. All of the data is made up, and ticking Include tricky values adds the commas, quotes, line breaks, non-Latin text and blanks that trip up importers. The file is built in your browser and saved to your own disk before it downloads, with nothing sent to a server, so the practical limits are free disk space and the storage your browser allows one site (about 10 GB in Firefox).

Testing an import means you need a file shaped like the real thing, big enough to hit the limits you care about, and free of anyone’s actual personal data. A copy of a real export is rarely the size you need, and it is full of real people’s details. This generator makes a test file on your own computer and writes it to your disk a batch of rows at a time, so a 5 GB test file needs no more memory than a small one. When the real export is what you need, only smaller, take a sample out of it instead — the first rows, every nth row or a random slice, copied exactly as they were written.

How to Generate a Test CSV File

  1. Choose a dataset: customers, sales orders, employees or a product catalog.
  2. Choose a size, either an exact number of rows or a file size in megabytes. The buttons below the size fill in common test sizes.
  3. Tick Include tricky values if you want to find out whether your importer copes with messy data.
  4. Check the preview, which shows the first rows of the exact file you will get.
  5. Press Generate CSV, then download the file when it is ready.

The Quick downloads at the top of the tool skip these steps: each one generates the customers dataset with the default settings and downloads it as soon as it is ready, and they come in 10, 100, 1,000, 10,000, 100,000, 1,000,000 and 1,048,577 rows, from 1.2 KB to 115.5 MB.

Sample Customer, Sales, Employee and Product Data

DatasetColumnsGood for testing
CustomersID, first and last name, email, phone, city, country, postal code, signup date, lifetime value, opt-inCRM and mailing-list imports, deduplication, address handling
Sales ordersOrder ID, date, customer ID, store, SKU, product, quantity, unit price, discount, total, status, noteReporting, splitting by store or status, totals and money columns
EmployeesEmployee ID, name, email, department, job title, hire date, salary, manager, office, activeHR and payroll systems, lookups by manager ID, access control tests
Product catalogSKU, product name, category, brand, price, cost, stock, weight, EAN-13 barcode, descriptionShop and inventory imports, barcode handling, long text fields

Some values are chosen to catch a common import mistake on their own. US postal codes such as 02108 and product barcodes starting with 0 lose their leading zeros if anything along the way treats them as numbers — see why Excel removes leading zeros. Every barcode carries a valid EAN-13 check digit, so a validator that rejects them has a bug of its own.

Dummy, Fake or Mock Data? All of It Is Made Up

Nothing in these files is copied from real records. The generator builds every value from short built-in lists and random numbers:

  • Names pair a first name and a last name picked at random from 40 of each, plus a few accented and non-Latin ones when tricky values are on, so any match with a real person is chance.
  • Email addresses are made from the name and the row number, so every address in a file is different: the first customer in the default file is Yuki Moore, yuki.moore1@example.com. Customers get addresses at example.com and employees at example.org.
  • Phone numbers all end in a number from 555-0100 to 555-0199, so none of them belongs to a real person.
  • Addresses go no further than a city, a two-letter country code and a postal code. There are no street names or house numbers.
  • Numbers still add up. An order’s total is the quantity times the unit price, less the discount, and each salary sits near a typical figure for the job title.

Test Files with Quotes, Commas, Line Breaks and Missing Values

Clean sample data proves very little, because many CSV bugs only show up on the awkward rows. With Include tricky values ticked, roughly one row in six to one in three, depending on the dataset, has at least one of these:

  • Commas inside a value, such as a store called Main St, Unit 4. The value is wrapped in quotes, and a reader that splits on every comma will shift the rest of that row one column to the right.
  • Double quotes inside a value, like 27" Monitor, written as "27"" Monitor" as the CSV standard requires.
  • Line breaks inside a value, in order notes and product descriptions. A tool that counts lines instead of rows will report the wrong total — the problem explained in how to count the rows in a CSV.
  • Accented and non-Latin text, such as Zoë, Łukasz, São Paulo and 東京, which turn into garbled characters when a program guesses the wrong encoding.
  • Empty values in columns that are usually filled, such as phone number, city or salary.

To test quoting, choose sales orders or the product catalog: those are the datasets whose tricky values include commas, double quotes and line breaks. In customers and employees, the tricky values are accented and non-Latin names (and, for customers, city names) and empty values.

The preview marks a line break inside a value with ↵, so you can see which rows are the awkward ones before you download.

How Big Is a Sample CSV File?

With the default settings a row takes about 100 to 120 bytes, so each million rows adds roughly 100 to 115 MB. These are the sizes the generator produces, rounded as the tool shows them:

Dataset1,000 rows100,000 rows1,000,000 rowsRows in a 1 GB file
Customers110.2 KB10.9 MB110.1 MB9,218,407
Sales orders100.8 KB9.8 MB98 MB10,444,740
Employees112.9 KB11.2 MB113 MB8,918,839
Product catalog116.2 KB11.3 MB113.5 MB9,024,306

The sizes are for the default settings: a header row, commas, Windows (CRLF) line endings, a UTF-8 byte order mark, seed 42 and no tricky values. They come from running the generator’s own code and counting the bytes it wrote, and they use the same units the tool reports, where 1 KB is 1,024 bytes and 1 MB is 1,048,576 bytes. Other options change the size a little; Mac and Linux (LF) line endings, for example, save one byte per row. The 1,048,577-row Excel test file comes to between 102.8 MB (sales orders) and 119 MB (product catalog). For the limits that other programs put on file size, see is there a CSV file size limit?

Large CSV Files for Testing: 1 GB, 5 GB, 10 GB and 20 GB

When the file’s size is what matters — a memory or streaming test, or an upload capped in megabytes — choose File size instead of Number of rows, enter the size in megabytes and press Generate CSV, with every other option left at its default. The tool counts 1,024 MB to the gigabyte, and the row counts below come from running the generator’s own code, like the sizes above. A 20 GB file holds fewer than 20 times the rows of a 1 GB one, because every email address carries its row number, so the rows get longer as the file grows.

File sizeCustomer rows (default options)How to make itBrowser
1 GB9,218,407File size: 1024 MB, or press 1 GB under Common test sizesChrome, Edge or Firefox
5 GB45,747,082File size: 5120 MBChrome, Edge or Firefox
10 GB91,400,179File size: 10240 MBChrome or Edge
20 GB181,322,331File size: 20480 MB, the most the tool acceptsChrome or Edge

Choosing a Size

You want to testGenerateWhy
Excel’s row limit1,048,577 rowsJust past the 1,048,576 rows a worksheet holds, whether or not you count the header. Excel should warn that not all the data was loaded.
Google Sheets import20,000,000 ÷ columnsA spreadsheet in Google Sheets holds up to 20 million cells, so an 11-column file reaches the limit at about 1,818,000 rows, counting the header row. The limit was 10 million until Google began raising it in September 2026. Google also caps a spreadsheet created in or converted to Sheets at 100 MB, so a file with long values can fail before it reaches 20 million cells.
An upload or import limitJust over the limitCheck the error message is clear, then just under the limit to confirm it is accepted.
Memory and streaming1–10 GBLarge enough that a program loading the whole file into memory slows down or fails.

Excel’s row limit explained covers what happens to the rows past the limit, and splitting a CSV to fit an import limit lists published limits for common tools.

Repeatable Test Files

Each file comes from a seed, set to 42 under Advanced Options. The same seed with the same dataset, size and options gives a byte-for-byte identical file every time. That lets a bug report say “sample orders, 2 million rows, seed 42” instead of attaching a 196 MB file, and lets two people test against exactly the same data. Change the seed for a different file with the same shape.

Where the File Is Made

The file is generated by code running in your browser tab and written to the browser’s private storage on your own disk, then downloaded from there. Nothing is sent to a server. You need free disk space of roughly the file’s size while it is being made, and the finished file can then be used with the CSV splitter, merge tool or duplicate remover to test those jobs too. A file made with Include tricky values is also a way to test a checker rather than an importer: RowSlice's CSV validator reads the same quoted commas, line breaks and non-Latin text and reports what it makes of them.

Last updated .

FAQ

Frequently Asked Questions

Is any of the generated data real?

No. Every name, order and salary is made up by the generator. Email addresses use example.com and example.org, domains reserved for documentation and testing by RFC 2606, and phone numbers use 555-0100 to 555-0199, the range set aside for fictional use in North America. Nothing in a generated file can reach a real inbox or phone, so it is safe to load into a test system.

What is the largest sample CSV file I can download?

Up to 100 million rows, or up to 20 GB when you choose by size. The file is written straight to your disk a batch at a time, so memory is not the limit — free disk space is, because the whole file has to be stored before it downloads. Firefox allows a site about 10 GB of storage, so use Chrome or Edge for anything larger.

Where can I download a 1 GB CSV file for testing?

On this page: press 1 GB under Common test sizes, which sets File size to 1024 MB, then press Generate CSV and download the file when it is ready. With the default settings it holds 9,218,407 rows of made-up customers and comes out 6 bytes short of 1 GB. The file is made on your own computer, by code running in your browser, and nothing is sent to a server.

Why is my file slightly smaller than the size I asked for?

Because it stops before the row that would take it past your size, rather than cutting a row in half. A file you asked to be 100 MB comes out short by less than the length of one row, which is about 100 to 120 bytes with the default settings, and every row in it is complete. If you need an exact row count instead, choose Number of rows.

Can I generate exactly the same file again later?

Yes. Open Advanced Options and note the seed, 42 unless you changed it. The same seed with the same dataset, size and options produces a byte-for-byte identical file every time, so a failing test can be rerun against the same data, or the file rebuilt on another machine without sending it.

Why do some values have quotes around them?

Those values contain the delimiter, a double quote or a line break, and the CSV standard (RFC 4180) says such a field must be wrapped in double quotes, with any quote inside it doubled. In a generated file it only happens when you tick Include tricky values, and only in the sales orders and product catalog datasets: without tricky values, no generated value contains a delimiter, a double quote or a line break. A correct CSV reader removes the quotes again; if yours shows them, that is exactly the bug the file has found.

Will Excel open a generated file?

Yes, up to 1,048,575 rows with the header row on (the header uses one of the 1,048,576 rows a worksheet holds), or 1,048,576 with it off. The preset of 1,048,577 rows exists to test precisely that edge: Excel loads the first 1,048,576 lines and warns that not all the data was loaded. If Excel puts everything in one column, your regional settings expect semicolons — choose Semicolon under Advanced Options.

Can I choose my own columns?

No. The sample CSV generator has four fixed datasets, each with its own columns: customers (11 columns), sales orders (12), employees (11) and a product catalog (10). You choose the dataset and the size, and under Advanced Options the delimiter, line endings, header row, byte order mark and seed, but not the column names or their order. Pick the dataset closest to the data your system really takes.

Can I get Excel, JSON or SQL instead of CSV?

Not from the generator itself: it writes CSV only, a plain-text UTF-8 file whose name ends in .csv. Under Advanced Options you can change the delimiter from comma to semicolon, tab or pipe, which gives a tab- or pipe-separated file, though the name still ends in .csv. Generate the CSV and convert it for the other two formats: convert the generated CSV to Excel for a real .xlsx workbook that keeps the leading zeros in the postal codes and barcodes which double-clicking a CSV loses, or write the same file out as JSON, either one array or NDJSON. There is no SQL output.

Does a generated file contain duplicate rows?

No. The first column is a running ID, such as C00000001, C00000002 and so on for customers, so no two rows in a file are the same. To test duplicate removal, generate the same file twice with the same seed and combine the two copies with the CSV merger: every row then appears exactly twice, and the duplicate remover should take out exactly one copy of each.

Guides

More Tools

More CSV Tools

CSV Analyzer

Count the rows, list the columns and profile the values in a CSV too big to open.

CSV Viewer

Page through and search a CSV that is far too large for Excel, without uploading it.

Compare Two CSV Files

See what was added, removed and changed between two exports, matched on an ID column.

Take a Sample from a CSV

Pull the first rows, every Nth row or a random slice out of a huge file for testing.

Split CSV into Multiple Files

Cut a CSV that Excel refuses to open into multiple files by rows, size or number of parts.

Split CSV by Column Value

One file for every store, region, client or status — straight from a huge export.

Filter CSV Rows

Keep only the rows you need — by value, text match or number range — from a file of any size.

Merge CSV Files

Combine multiple CSV files into one, lining up columns by name, even when the result is too big for Excel.

Remove Duplicates from CSV

Delete repeated rows from millions of records, comparing whole rows or chosen columns.

Convert CSV to Excel

Make a real .xlsx file without losing leading zeros, long IDs or turning codes into dates.

Convert CSV to JSON

Turn a CSV into a JSON array or NDJSON, with every value kept exactly as written.

Convert JSON to CSV

Flatten a JSON array or NDJSON export into a spreadsheet-ready CSV.

CSV Validator

Find the broken rows, bad quotes, wrong encoding and duplicate IDs before an import fails.

Convert CSV to UTF-8

Repair garbled characters like é by converting to UTF-8, and switch semicolons to commas.