Задайте до 100 столбцов, выберите для каждого тип поля, укажите число строк от 1 до 1 000 000 и начальное значение (seed). Одинаковый seed и одинаковые настройки столбцов всегда дают одни и те же строки в любом браузере, так что тестовый файл можно не хранить, а создать заново. Имена, адреса email и телефоны вымышлены: адреса заканчиваются на @example.test, а телефоны в английской версии используют диапазон 555. Генерация идёт в вашем браузере, ничего не загружается на сервер.
Как создать CSV-файл
- Укажите число строк (от 1 до 1 000 000) и seed. Начальная настройка содержит шесть столбцов: последовательный
id, полное имя, email, дату регистрации в 2024–2025 годах, тариф Free, Pro или Team в соотношении 6:3:1 и сумму от 0 до 500 с двумя знаками после запятой. - Добавьте, удалите или переименуйте столбцы и выберите для каждого тип поля. У каждого столбца должно быть заполненное и уникальное название.
- При желании задайте долю пустых ячеек или потребуйте уникальных значений в столбце, затем сгенерируйте и скачайте файл.
Строки записываются в фоновом обработчике частями, а не одной огромной строкой, поэтому файл на миллион строк не подвешивает страницу, а отмена останавливает задачу. Один выходной файл ограничен 4 ГБ.
Типы полей
| Последовательность | Считает от начального значения (по умолчанию 1) с заданным шагом (по умолчанию 1). Необязательная ширина дополнения нулями даёт идентификаторы вида 000001; отрицательные числа нулями не дополняются. |
|---|---|
| UUID | Структура версии 4 из RFC 9562 (xxxxxxxx-xxxx-4xxx-[89ab]xxx-…), значения берутся из генератора с seed. Они воспроизводимы, поэтому не годятся как секрет или токен безопасности. |
| Имя, фамилия, полное имя | Распространённые имена для языка интерфейса. Китайские, японские и корейские полные имена пишутся с фамилии и без пробела. |
name.word<row>@example.test, например casey.maple1@example.test. Номер строки делает каждый адрес уникальным. Адрес не строится из столбца с именем. | |
| Телефон | Шаблон, в котором каждый # заменяется цифрой. Оставьте поле пустым, чтобы взять формат языка по умолчанию; в английском это +1 555-###-####, в русском — +7 495 ###-##-##. |
| Компания, город, страна | Выдуманные названия компаний и реальные города для языка интерфейса; страна выбирается из фиксированного списка из 20. |
| Целое число | Целое число между минимумом и максимумом включительно. Обе границы обязательны и должны оставаться в пределах ±9 007 199 254 740 991 — это самые большие целые числа, которые JavaScript хранит точно. |
| Дробное число | Число между минимумом и максимумом, от 0 до 10 знаков после запятой, например 114.71. |
| Логическое значение | true или false с равной вероятностью. |
| Дата, дата и время | Случайный день между двумя датами в формате YYYY-MM-DD включительно. Тип «дата и время» добавляет случайное время в UTC: 2026-01-04T09:17:35Z. |
| Выбор из списка | По одному значению в строке, с необязательным весом после двоеточия: при Free:6, Pro:3, Team:1 Free выпадает примерно в 60 % случаев. Строки без веса считаются с весом 1. |
| Шаблон | Шаблон, где # — цифра, ? — заглавная латинская буква, а * — цифра или заглавная буква: SKU-####-?? даёт SKU-6836-LU. Все остальные символы копируются как есть. |
| Слова | От 1 до 20 слов (по умолчанию 3) из фиксированного списка из 20 простых английских слов — для текста-заполнителя. |
| Константа | Один и тот же текст в каждой строке. |
Seed и воспроизводимость
Seed — любой текст. Каждый столбец берёт значения из собственного случайного потока, который зависит от seed и названия столбца, поэтому:
- одинаковые seed, число строк и настройки столбцов всегда дают побайтно одинаковый файл в любом браузере;
- если добавить, удалить или переставить другие столбцы, значения столбца не изменятся, а если переименовать сам столбец — изменятся;
- если запросить больше строк, прежние строки останутся без изменений, а новые добавятся в конец;
- язык интерфейса меняет имена, города, компании и формат телефона по умолчанию, но не числа, даты, варианты выбора и адреса email.
Для пустых ячеек используется отдельный поток. Пустая ячейка не расходует значение, поэтому при изменении доли пустых ячеек сдвигается то, какие значения попадут в последующие строки этого столбца.
Пустые ячейки и уникальные значения
Доля пустых ячеек задаётся в процентах от 0 до 100 для каждого столбца; каждая ячейка остаётся пустой с этой вероятностью. Так удобно проверять, как импорт справляется с пропущенными значениями.
Уникальные значения: значение генерируется заново, пока не найдётся ещё не использованное в этом столбце; после 1000 попыток генерация прекращается с ошибкой, в которой назван столбец. Если уникальность заведомо невозможна, настройки отклоняются сразу: диапазон целых чисел, в котором чисел меньше, чем строк, или список вариантов короче числа строк. Значения других типов всё равно могут закончиться посередине — например, уникальные полные имена в английской версии заканчиваются примерно после 144 строк (12 имён × 12 фамилий). Для последовательности, UUID и константы проверка не выполняется, а пустые ячейки значениями не считаются.
Ошибки в настройках
- Число строк должно быть целым от 1 до 1 000 000, а столбцов — от 1 до 100.
- Название столбца пустое или повторяется: каждый заголовок должен быть заполнен и отличаться от остальных.
- Для целых и дробных чисел нужны и минимум, и максимум, причём минимум не может быть больше максимума.
- Диапазон дат записывается как
YYYY-MM-DD, например2024-01-01;2024/01/01или01/02/2024не принимаются. - В шаблоне должен быть хотя бы один символ
#,?или*; иначе используйте константу. - В списке вариантов нужно хотя бы одно значение с весом больше нуля.
Пример
Пять строк с seed demo-2026: последовательность от 1001 с дополнением до 6 цифр, полное имя, email, выбор с весами, дробное число от 0 до 250 с 40 % пустых ячеек и шаблон SKU-####-??. Запустите ещё раз с теми же настройками — получите ровно эти строки. Окончания строк показаны как обычные переносы.
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-####-??
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
Вопросы и ответы
Можно ли делиться сгенерированными данными?
В них нет реальных людей: имена — случайные пары распространённых имён и фамилий, адреса email используют зарезервированный домен .test (RFC 2606), а телефоны в английской версии — диапазон 555. Города при этом реальные.
Получит ли коллега такой же файл?
Да, если он укажет тот же seed, то же число строк, тот же язык интерфейса и те же настройки столбцов, включая их названия. Генератор использует собственный алгоритм с seed, а не случайные числа браузера.
Что мне нужно — большой файл или маленький набор?
Если нужны несколько описанных строк с известными подвохами, возьмите примеры CSV-файлов. Генератор пригодится, когда нужен объём, собственные названия столбцов или определённое сочетание типов.