CSV (format pliku)
CSV (ang. Comma Separated Values - wartości rozdzielone przecinkiem) - format przechowywania danych w plikach tekstowych i odpowiadający mu typ MIME text/csv.
Spis treści |
Specyfikacja formatu[edytuj]
Istnieje bardzo wiele implementacji standardu CSV - wiele z nich nie trzyma się ściśle wszystkich określonych tutaj zasad. Stanowią one jednak dobrze ugruntowaną i potwierdzoną dokumentem RFC 4180 część wspólną.
Końce linii[edytuj]
- Poszczególne rekordy rozdzielone są znakami końca linii CRLF.
- Ostatnia linia w pliku może nie zawierać znaku końca.
- Znak CRLF może być elementem pola, które musi wtedy być ujęte w cudzysłowy.
Separator[edytuj]
- Wartości pól zgodnie z nazwą formatu rozdzielone są przecinkami.
- Jako separator pól bywa także stosowany znak średnika (lub inny zgodnie z ustawieniami regionalnymi systemu) albo tabulator, jednak zgodnie z RFC 4180 jest to niezalecane. W jednym pliku może być użyty tylko jeden rodzaj separatora.
Cudzysłów[edytuj]
- Wartości pól mogą być ujęte w cudzysłowy.
- Wartości zawierające używany znak separatora (przecinek, średnik, znak tabulacji lub znaki końca linii) muszą być ujęte w cudzysłowy.
- Aby w treści pola umieścić cudzysłów należy wpisać znak cudzysłowu dwukrotnie, całą wartość ujmując w cudzysłowy (por. przykłady).
Uwagi[edytuj]
- Spacje i inne białe znaki (w szczególności te przyległe do separatorów) należą do pól.
- Pierwsza linia może stanowić nagłówek zawierający nazwy pól rekordów.
Przykłady[edytuj]
Arkusz kalkulacyjny[edytuj]
Przykładowe dane w arkuszu kalkulacyjnym:
| A | B | C | |
| 1 | Kowalski | Jan | Kłodzko |
| 2 | Nowak | Zenon | Szczecin |
| 3 | Brzęczyszczykiewicz | Grzegorz | Łękołody |
i te same dane zapisane w postaci dokumentu CSV:
Kowalski,Jan,Kłodzko Nowak,Zenon,Szczecin Brzęczyszczykiewicz,Grzegorz,Łękołody
Znaki specjalne[edytuj]
imię,opis,ocena Andrzej Nowak,fajny,4 "Jan Wiśniewski","fajny","2" Kowalski,"wiecznie pyta ""która godzina"", ale może być",5
Obsługa CSV w różnych aplikacjach[edytuj]
Format CSV jako prostszy niż format DBF jest obsługiwany przez większość arkuszy kalkulacyjnych i programów bazodanowych, jednak wspomniana dowolność wyboru separatorów ogranicza jego przenośność. Aby obejść to utrudnienie, tworzy się specjalne makra lub pozwala na konfigurowanie separatorów.
Microsoft Office[edytuj]
Filtr konwersji CSV z pakietu Microsoft Office pracuje przy założeniu, że plik CSV używa przecinka jako separatora, tymczasem Microsoft Excel i Access wyświetlają i zapisują plik CSV w formacie zgodnym z ustawieniami regionalnymi systemu, czyli w przypadku języka polskiego używa średnika zamiast przecinka do rozdzielania pól. Aby umożliwić automatyczną konwersję, tworzone są dedykowane makra.
OpenOffice[edytuj]
Calc z pakietu OpenOffice.org pozwala na konfigurację filtra konwersji, w tym wybór separatorów niezależny od ustawień regionalnych.
Biblioteki programistyczne[edytuj]
perl[edytuj]
Dla języka perl w archiwum CPAN dostępnych jest wiele bibliotek do obsługi formatu CSV. Najważniejsza to Text::CSV (w wersji uproszczonej: Text::CSV::Simple).
Ruby[edytuj]
Biblioteka standardowa języka Ruby zawiera klasę CSV.
PHP[edytuj]
Biblioteka standardowa PHP zawiera funkcje fgetcsv i fputcsv.
R[edytuj]
Język R posiada w pakiecie utils funkcje do obsługi pliku csv (read.csv i write.csv).
Python[edytuj]
Biblioteka standardowa Pythona zawiera moduł csv.
Linki zewnętrzne[edytuj]
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files (ang.)
- How To: The Comma Separated Value (CSV) File Format – Popularny opis formatu CSV (ang.)
- The CSV format specification – Definicja formatu CSV zapisana w rozszerzonej notacji BNF (ang.)