CSV (format pliku)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, szukaj

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

[edytuj] Specyfikacja formatu

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ą.

[edytuj] 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.

[edytuj] 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.

[edytuj] 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 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).

[edytuj] 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.

[edytuj] Przykłady

[edytuj] Arkusz kalkulacyjny

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

[edytuj] 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

[edytuj] Obsługa CSV w różnych aplikacjach

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.

[edytuj] Microsoft Office

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.

[edytuj] OpenOffice

Calc z pakietu OpenOffice.org pozwala na konfigurację filtra konwersji, w tym wybór separatorów niezależny od ustawień regionalnych.

[edytuj] Biblioteki programistyczne

[edytuj] perl

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).

[edytuj] Ruby

Biblioteka standardowa języka Ruby zawiera klasę CSV.

[edytuj] PHP

Biblioteka standardowa PHP zawiera funkcje fgetcsv i fputcsv.

[edytuj] R

Język R posiada w pakiecie utils funkcje do obsługi pliku csv (read.csv i write.csv).

[edytuj] Python

Biblioteka standardowa Pythona zawiera moduł csv.

[edytuj] Linki zewnętrzne

Osobiste
Przestrzenie nazw
Warianty
Działania
Nawigacja
Dla czytelników
Dla wikipedystów
Drukuj lub eksportuj
Narzędzia
W innych językach