CSV (format pliku)
| Rozszerzenia pliku | 
 .csv  | 
|---|---|
| Typ MIME | 
 text/csv, text/csv;header  | 
| Data opracowania | 
 październik 2005  | 
| Typ | 
 tekstowy format przechowywania danych tabelarycznych  | 
CSV (ang. comma-separated values, wartości rozdzielone przecinkiem) – format przechowywania danych w plikach tekstowych i odpowiadający mu typ MIME text/csv.
Specyfikacja formatu
[edytuj | edytuj kod]Istnieje 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
- 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
- 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.[potrzebny przypis]
 
Cudzysłów
- Wartości pól mogą być ujęte w cudzysłowy,
 - Wartości zawierające używany znak separatora (przecinek, średnik, znak tabulacji[potrzebny przypis] 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
- 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, jednak pierwszy wiersz pliku CSV wg standardu ma takie samo znaczenie jak pozostałe.
 
Przykłady
[edytuj | edytuj kod]Przykładowe dane w arkuszu kalkulacyjnym:
| A | B | C | |
|---|---|---|---|
| 1 | Kowalski | Jan | Kłodzko | 
| 2 | Nowak | Zenon | Szczecin | 
| 3 | Brzęczyszczykiewicz | Grzegorz | Chrząszczyżewoszyce | 
i te same dane zapisane w postaci dokumentu CSV:
Kowalski,Jan,Kłodzko Nowak,Zenon,Szczecin Brzęczyszczykiewicz,Grzegorz,Chrząszczyżewoszyce
Znaki specjalne:
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 | edytuj kod]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.
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.
Calc z pakietu OpenOffice.org pozwala na konfigurację filtra konwersji, w tym wybór separatorów niezależny od ustawień regionalnych, takie same możliwości oferuje Calc z pakietu LibreOffice.org
Biblioteki programistyczne
[edytuj | edytuj kod]- Dla języka Perl w archiwum CPAN dostępnych jest wiele bibliotek do obsługi formatu CSV[1].
 - Biblioteka standardowa języka Ruby zawiera klasę CSV[2].
 - Biblioteka standardowa PHP zawiera funkcje fgetcsv i fputcsv[3].
 - Język R posiada w pakiecie utils funkcje do obsługi pliku csv (read.csv i write.csv).
 - Biblioteka standardowa języka Python zawiera moduł csv[4].
 
Przypisy
[edytuj | edytuj kod]Linki zewnętrzne
[edytuj | edytuj kod]- Y. Shafranovich, Common Format and MIME Type for Comma-Separated Values (CSV) Files, RFC 4180, IETF, październik 2005, DOI: 10.17487/RFC4180, ISSN 2070-1721, OCLC 943595667 (ang.).
 - How To: The Comma Separated Value (CSV) File Format. creativyst.com. [zarchiwizowane z tego adresu (2021-04-04)]. – Popularny opis formatu CSV (ang.)
 - The CSV format specification. supercsv.sourceforge.net. [zarchiwizowane z tego adresu (2009-01-25)]. – Definicja formatu CSV zapisana w rozszerzonej notacji BNF (ang.)