Zdefiniuj do 100 kolumn, wybierz dla każdej rodzaj danych, ustaw liczbę wierszy od 1 do 1 000 000 i ziarno. To samo ziarno i te same ustawienia kolumn zawsze dają te same wiersze w każdej przeglądarce, więc plik testowy możesz odtworzyć, zamiast go przechowywać. Imiona, adresy e-mail i numery telefonów są fikcyjne: adresy kończą się na @example.test, a angielskie numery telefonów używają zakresu 555. Generowanie odbywa się w Twojej przeglądarce – nic nie jest wysyłane na serwer.
Jak wygenerować plik CSV
- Ustaw liczbę wierszy (od 1 do 1 000 000) i ziarno. Konfiguracja startowa ma sześć kolumn: kolejny numer
id, imię i nazwisko, adres e-mail, datę rejestracji z lat 2024–2025, plan wybierany spośród Free, Pro i Team w proporcji 6:3:1 oraz kwotę od 0 do 500 z dwoma miejscami po przecinku. - Dodawaj, usuwaj i zmieniaj nazwy kolumn oraz wybierz rodzaj danych dla każdej z nich. Każda kolumna musi mieć nazwę, a nazwy nie mogą się powtarzać.
- Opcjonalnie ustaw odsetek pustych komórek lub wymagaj unikatowych wartości w kolumnie, a potem wygeneruj i pobierz plik.
Wiersze są zapisywane w tle przez osobny wątek (worker), w częściach, a nie jako jeden ogromny ciąg znaków, więc plik z milionem wierszy nie zawiesza strony, a anulowanie przerywa zadanie. Jeden plik wynikowy może mieć maksymalnie 4 GB.
Rodzaje danych
| Liczba porządkowa | Liczy od wartości początkowej (domyślnie 1) z zadanym krokiem (domyślnie 1). Opcjonalna szerokość z zerami daje identyfikatory w stylu 000001; liczby ujemne nigdy nie są uzupełniane zerami. |
|---|---|
| UUID | Układ wersji 4 z RFC 9562 (xxxxxxxx-xxxx-4xxx-[89ab]xxx-…), losowany z generatora opartego na ziarnie. Wartości są powtarzalne, więc nie nadają się na sekret ani token bezpieczeństwa. |
| Imię, nazwisko, imię i nazwisko | Popularne imiona i nazwiska dla języka interfejsu. Pełne imiona i nazwiska chińskie, japońskie i koreańskie zaczynają się od nazwiska i są zapisywane bez spacji. |
name.word<row>@example.test, np. casey.maple1@example.test. Numer wiersza sprawia, że każdy adres jest unikatowy. Adres nie jest tworzony na podstawie kolumny z imieniem. | |
| Numer telefonu | Wzorzec, w którym każdy znak # zamienia się w cyfrę. Zostaw pole puste, aby użyć domyślnego formatu języka; w języku angielskim to +1 555-###-####, a w polskim +48 22 ### ## ##. |
| Firma, miejscowość, kraj | Wymyślone nazwy firm i prawdziwe nazwy miast dla języka interfejsu; kraj jest losowany ze stałej listy 20 państw. |
| Liczba całkowita | Liczba całkowita między minimum a maksimum, z obiema granicami włącznie. Obie granice są wymagane i muszą mieścić się w zakresie ±9 007 199 254 740 991 – to największe liczby całkowite, jakie JavaScript przechowuje dokładnie. |
| Liczba dziesiętna | Liczba między minimum a maksimum z 0–10 miejscami po przecinku, np. 114.71 (z kropką jako separatorem dziesiętnym). |
| true / false | true lub false z jednakowym prawdopodobieństwem. |
| Data, data i godzina | Losowy dzień między dwiema datami w formacie YYYY-MM-DD, z obiema włącznie. Wariant z godziną dodaje losowy czas UTC: 2026-01-04T09:17:35Z. |
| Jedna z listy | Jedna wartość w wierszu, opcjonalnie z wagą po dwukropku: Free:6, Pro:3, Team:1 wybiera Free w około 60% przypadków. Wiersze bez wagi liczą się jako 1. |
| Wzorzec | Szablon, w którym # oznacza cyfrę, ? wielką literę, a * cyfrę lub wielką literę: SKU-####-?? daje SKU-6836-LU. Pozostałe znaki są przepisywane bez zmian. |
| Słowa | Od 1 do 20 słów (domyślnie 3) ze stałej listy 20 prostych angielskich słów, jako tekst wypełniający. |
| Stała wartość | Ten sam tekst w każdym wierszu. |
Ziarno i powtarzalność
Ziarnem może być dowolny tekst. Każda kolumna korzysta z własnego strumienia losowego, wyprowadzonego z ziarna i nazwy kolumny, dlatego:
- to samo ziarno, ta sama liczba wierszy i te same ustawienia kolumn zawsze dają plik identyczny bajt w bajt, w każdej przeglądarce;
- dodanie, usunięcie lub zmiana kolejności innych kolumn nie zmienia wartości danej kolumny, ale zmiana jej nazwy już tak;
- zwiększenie liczby wierszy pozostawia wcześniejsze wiersze bez zmian i dopisuje nowe;
- język interfejsu zmienia imiona i nazwiska, miasta, firmy oraz domyślny format telefonu, ale nie liczby, daty, opcje z listy ani adresy e-mail.
Puste komórki korzystają z osobnego strumienia. Pusta komórka nie zużywa wartości, więc zmiana odsetka pustych komórek przesuwa to, które wartości pojawią się w dalszych wierszach tej kolumny.
Puste komórki i unikatowe wartości
Puste komórki to odsetek od 0 do 100 ustawiany dla każdej kolumny: z takim prawdopodobieństwem dana komórka pozostaje pusta. Przydaje się to do sprawdzenia, jak import radzi sobie z brakującymi wartościami.
Opcja unikatowych wartości losuje wartość ponownie, dopóki nie trafi na niewykorzystaną w tej kolumnie, i rezygnuje po 1000 próbach z błędem wskazującym kolumnę. Ustawienia są odrzucane od razu, gdy unikatowość jest niemożliwa: zakres liczb całkowitych zawiera mniej liczb niż wierszy albo lista opcji jest krótsza niż liczba wierszy. Inne rodzaje danych mogą wyczerpać się w trakcie – np. unikatowe imię i nazwisko po około 144 wierszach (12 imion × 12 nazwisk). Kolumny z liczbą porządkową, UUID i stałą wartością pomijają tę kontrolę, a puste komórki nie są liczone jako wartości.
Błędy w ustawieniach
- Liczba wierszy musi być liczbą całkowitą od 1 do 1 000 000, a kolumn musi być od 1 do 100.
- Nazwa kolumny jest pusta lub powtórzona: każdy nagłówek musi być wypełniony i inny niż pozostałe.
- Kolumny z liczbami całkowitymi i dziesiętnymi wymagają zarówno minimum, jak i maksimum, a minimum nie może być większe od maksimum.
- Zakresy dat trzeba zapisać jako
YYYY-MM-DD, np.2024-01-01; zapis2024/01/01lub01/02/2024zostanie odrzucony. - Wzorzec musi zawierać co najmniej jeden znak
#,?lub*; w przeciwnym razie użyj kolumny ze stałą wartością. - Lista opcji wymaga co najmniej jednej wartości z wagą większą od zera.
Przykład
Pięć wierszy z ziarnem demo-2026: liczba porządkowa od 1001 uzupełniana do 6 cyfr, imię i nazwisko, adres e-mail, wybór z wagami, liczba dziesiętna od 0 do 250 z 40% pustych komórek oraz wzorzec SKU-####-??. Język danych to angielski. Uruchom generator ponownie z tymi samymi ustawieniami, a dostaniesz dokładnie te wiersze. Znaki końca wiersza pokazano jako zwykłe podziały wiersza.
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
Pytania i odpowiedzi
Czy wygenerowane dane można bezpiecznie udostępniać?
Nie zawierają prawdziwych osób: imiona i nazwiska to losowe pary popularnych imion i nazwisk, adresy e-mail używają zarezerwowanej domeny .test (RFC 2606), a angielskie numery telefonów – zakresu 555. Nazwy miast to prawdziwe miejscowości.
Czy współpracownik dostanie ten sam plik?
Tak, jeśli użyje tego samego ziarna, tej samej liczby wierszy, tego samego języka interfejsu i tych samych ustawień kolumn, łącznie z ich nazwami. Generator korzysta z własnego algorytmu opartego na ziarnie, a nie z liczb losowych przeglądarki.
Potrzebuję dużego pliku czy małego zestawu testowego?
Jeśli wystarczy kilka opisanych wierszy ze znanymi trudnymi przypadkami, użyj przykładowych plików CSV. Generator przyda się, gdy potrzebujesz dużej liczby wierszy, własnych nazw kolumn lub określonego zestawu rodzajów danych.