5 wierszy · 4 kolumny · trudne przypadki dla parserów: cudzysłowy, podziały wierszy, tabulatory, emoji, formuła, długie identyfikatory
Sprawdź, czy program zachowuje każdą wartość bez zmian: 0007, 1.2300 i 20-cyfrowe identyfikatory muszą przetrwać.
id,label,note,amount
0007,"Comma, inside","He said ""yes""",1.2300
12345678901234567890,"Line
break","Ends with spaces ",-0.5
003,Café · 東京 · Москва · مرحبا,=SUM(A1:A2),1e-3
004,,Tab inside,
005,😀 emoji,"""quoted""",9007199254740993
prices-semicolon.csv
5 wierszy · 4 kolumny · ceny rozdzielane średnikiem, z przecinkiem dziesiętnym – tak jak zapisuje je polski Excel i wiele innych europejskich wersji
Otwórz go, by zobaczyć wykrywanie ogranicznika; filtruj liczby z przecinkiem jako separatorem dziesiętnym.
item_no;description;price;quantity
000201;Coffee beans 1 kg;12,90;2
000202;Desk lamp;34,50;3
000203;USB-C cable, 2 m;7,99;4
000204;Notebook A5;3,25;5
000205;Wisła Dane sp. z o.o.;1.234,50;1
orders-100k.csv
100 000 zamówień, ok. 7 MB, generowanych w Twojej przeglądarce
Generowany ze stałego ziarna, więc każde pobranie daje identyczny plik. Użyj go, by sprawdzić obsługę dużych plików.
To siedem małych plików CSV z fikcyjnymi osobami i adresami e-mail w domenie example.test, przygotowanych do testowania narzędzi CSV. Każdy z nich opisano poniżej: kolumny, przeznaczenie i dokładne pułapki, które zawiera – identyfikatory z zerami wiodącymi, takie jak 001041, przecinek w cudzysłowie, cudzysłów poprzedzony znakiem ucieczki, podział wiersza w komórce, pustą cenę i zduplikowany wiersz. Wszystkie pliki to tekst UTF-8 rozdzielany przecinkami, z wierszem nagłówka i znakami końca wiersza CRLF.
Pliki i ich kolumny
orders.csv
15 zamówień: order_id, customer, city, product, quantity, unit_price, order_date, status. Plik uniwersalny do sortowania, filtrowania, mapowania kolumn i konwersji.
orders-updated.csv
Późniejsza wersja pliku orders.csv do porównań: zamówienie 001044 ma nową ilość, zamówienia 001046 już nie ma, a zamówienie 001099 jest nowe.
contacts.csv
6 kontaktów: first_name, last_name, email, mobile, company, city, notes. Przygotowany z myślą o eksporcie do książki adresowej, np. w formacie vCard.
10 faktur: customer_id, invoice_no, total, paid. Prawa strona złączenia; część faktur wskazuje klienta 00309, którego nie ma w pliku customers.csv.
signups.csv
7 rekordów celowo niechlujnych danych z rejestracji: id, name, email, age, signup_date, plan. Do ćwiczenia czyszczenia i walidacji.
sales.csv
18 wierszy miesięcznej sprzedaży w formacie długim: month, region, revenue, units – po sześć miesięcy dla każdego z trzech regionów. Do wykresów, tabel przestawnych i transpozycji.
Nazwy kolumn to zwykłe identyfikatory, tak jak w większości eksportowanych plików. Daty są zapisane zgodnie z ISO 8601 (2026-03-25), miesiące jako 2026-01, a kwoty mają dwa miejsca po kropce dziesiętnej (nie po przecinku, jak w polskim Excelu).
Trudne przypadki w każdym pliku
orders.csv: każdy order_id jest uzupełniony zerami do sześciu cyfr (od 001041 do 001054), więc narzędzie, które czyta identyfikatory jako liczby, zgubi zera. Produkt Monitor 27" jest zapisany jako "Monitor 27""" (cudzysłów ze znakiem ucieczki), a "Chair, ergonomic" zawiera przecinek w cudzysłowie. Zamówienie 001045 ma pustą wartość unit_price, w zamówieniu 001047 nazwisko klienta otaczają spacje, a ostatni wiersz jest dokładną kopią zamówienia 001043.
contacts.csv: jedna komórka notes zajmuje dwa wiersze (Met at the trade fair / Prefers email), a inna zawiera przecinek (VIP, call before 10:00). Większość notatek jest pusta. Numery telefonów komórkowych w wersji angielskiej zaczynają się od +1 555, a w polskiej od +48 22.
customers.csv i invoices.csv: oba pliki łączy pięciocyfrowy customer_id z zerami wiodącymi, np. 00301, więc złączenie zadziała tylko wtedy, gdy po obu stronach pozostanie on tekstem. Klient 00308 ma trzy faktury, czterech klientów nie ma żadnej, a 00309 ma faktury, ale nie ma wiersza w pliku klientów.
signups.csv: imię i nazwisko ze spacją na początku, drugie ze spacją na końcu i trzecie z podwójną spacją; not-an-email i N/A w kolumnie e-mail; thirty i puste wartości w kolumnie age; niemożliwa data 2026-02-30 i niejednoznaczna 11/03/2026; pro i Pro jako dwie pisownie tego samego planu; dokładny duplikat rekordu, całkowicie pusty rekord i brak rekordu o id 4.
sales.csv: czysty, całkowicie liczbowy plik. Wartości revenue i units są liczbami całkowitymi, więc to przypadek kontrolny: jeśli narzędzie popełni tu błąd, nie wynika on z niechlujnych danych.
Który plik do jakiego zadania
Przeglądanie, sortowanie i filtrowanie
orders.csv w przeglądarce CSV oraz w narzędziach do sortowania i filtrowania. Posortuj według order_id, aby sprawdzić, czy identyfikatory z zerami wiodącymi zachowują kolejność.
Konwersja
orders.csv w narzędziach CSV do JSON, CSV do SQL i CSV do Excela; contacts.csv w narzędziu CSV do vCard. Sprawdź, czy 001041 przetrwa, a dwuwierszowa notatka pozostanie jedną wartością.
Porównanie dwóch wersji
orders.csv i orders-updated.csv w narzędziu Porównywanie plików CSV: spodziewaj się jednego zmienionego, jednego usuniętego i jednego dodanego wiersza.
Na stronach narzędzi, które z nich korzystają, przycisk Wypróbuj przykład od razu wczytuje odpowiedni plik, dzięki czemu zobaczysz działanie narzędzia, zanim otworzysz własne dane.
Czy to prawdziwe dane?
Nie. Osoby to losowe połączenia popularnych imion i nazwisk, firmy są wymyślone, każdy adres e-mail korzysta z zarezerwowanej domeny .test opisanej w RFC 2606, a angielskie numery telefonów używają zakresu 555. Nazwy miast to prawdziwe miejscowości, użyte wyłącznie jako etykiety. Ceny, ilości i daty są generowane ze stałego ziarna, więc każdy plik za każdym razem wygląda tak samo.
Pliki dopasowują się do języka interfejsu: na polskiej stronie imiona, nazwiska, miasta, firmy i format numerów telefonów są znajome polskim użytkownikom, a nazwy kolumn, identyfikatory i trudne przypadki pozostają takie same.
Gdy potrzebujesz innego pliku
Te pliki są celowo małe, aby każdy wiersz dało się sprawdzić wzrokowo. Jeśli potrzebujesz tysięcy wierszy, innych typów kolumn lub własnych nazw kolumn, skorzystaj z generatora danych testowych CSV: to samo ziarno i te same ustawienia zawsze dają ten sam plik, więc test można dokładnie powtórzyć.
Przykład: jak odczytywany jest kłopotliwy wiersz kontaktów
Pierwsze trzy rekordy angielskiej wersji pliku contacts.csv w postaci zapisanej w pliku oraz wartości, które zwraca dla nich poprawny parser zgodny z RFC 4180. Podział wiersza i przecinek pozostają wewnątrz wartości notes, a puste ostatnie pole jest pustym ciągiem znaków, a nie brakującą kolumną.
CSV
first_name,last_name,email,mobile,company,city,notes
Ava,Williams,contact1@example.test,+1 555-235-0351,Harbor Analytics,Atlanta,
Mary,Brown,contact2@example.test,+1 555-073-4622,Bluebird Labs,Chicago,"Met at the trade fair
Prefers email"
Olivia,Garcia,contact3@example.test,+1 555-982-2565,Northwind,Chicago,
Czy mogę używać tych plików we własnych testach lub poradnikach?
Nie zawierają prawdziwych osób ani danych kontaktowych, więc możesz bezpiecznie używać ich jako danych testowych. Pamiętaj tylko, że nazwy miast to prawdziwe miejscowości.
Dlaczego identyfikatory zaczynają się od zer?
Bo w prawdziwych eksportach często tak jest (numery zamówień, kody pocztowe, kody produktów), a właśnie to narzędzia CSV psują najczęściej. Jeśli 001041 zamieni się w 1041, narzędzie przekształciło tekst w liczbę.
Po co w pliku orders.csv zduplikowany wiersz?
Do testowania usuwania duplikatów i porównywania. Ostatni rekord dokładnie powtarza zamówienie 001043, więc wyszukiwanie duplikatów powinno znaleźć jeden zduplikowany wiersz.
Podstawowe liczenie odsłon działa zawsze. Nie używa plików cookie i rejestruje tylko, którą stronę odwiedzono – nigdy Twoich plików ani tego, co wpisujesz.
Opcjonalnie: za Twoją zgodą strona korzysta też z Google Analytics i Microsoft Clarity, aby sprawdzać, jak używane są narzędzia, np. jaki format eksportu wybrano. Twoje pliki CSV i ich zawartość nigdy nie są wysyłane. Więcej informacji znajdziesz w dokumencie Polityka prywatności