CSV

CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми.

CSV
Comma-Separated Values
Расширение .csv
MIME-тип text/csv
Тип формата представление базы данных
Стандарт(ы) RFC 4180

Формат CSV стандартизирован не полностью. Идея использовать запятые для разделения полей очевидна, но при таком подходе возникают проблемы, если исходные табличные данные содержат запятые или переводы строк. Возможным решением проблемы запятых и переносов строк является заключение данных в кавычки, однако исходные данные могут содержать кавычки. Помимо этого термином «CSV» могут обозначаться похожие форматы, в которых разделителем является символ табуляции (TSV) или точка с запятой. Многие приложения, которые работают с форматом CSV, позволяют выбирать символ разделителя и символ кавычек.

Спецификация

  • Каждая строка файла — это одна строка таблицы.
  • Разделителем (англ. delimiter) значений колонок является символ запятой (,). Однако на практике часто используются другие разделители, то есть формат путают с DSV и TSV (см. ниже).
  • Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками ("). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.

Стандартизация

Название формата — CSV (значения, разделённые запятыми) — указывает что для разделения полей используется запятая. Тем не менее термин «CSV» может использоваться для обозначения схожих форматов. Много программ понимают под CSV более общий формат DSV (англ. delimiter-separated values — значения разделённые разделителем), допускающий использование иных символов в качестве разделителя. В частности, в русской и других локалях запятая по умолчанию зарезервирована под десятичный разделитель. Поэтому как разделитель используется точка с запятой или табуляция (формат TSV). Другие отличия родственных форматов: используемые кавычки: двойные или одинарные; используемый набор символов; использование первой строки как заголовка. Это значительно затрудняет перенос данных из одних программ в другие, несмотря на всю простоту реализации поддержки CSV.

Стандарт RFC 4180

Существует RFC 4180, предназначенный для стандартизации и упрощения обмена данными в формате CSV. Он предъявляет, в частности, такие требования:

  • окончание строк в стиле MS-DOS, символы (CR / LF).
  • необязательная строка заголовка.
  • каждая строка (запись) должна содержать одинаковое количество полей.
  • поле может быть заключено в двойные кавычки.
  • если поле содержит запятые, переносы строк, двойные кавычки, то это поле должно быть заключено в двойные кавычки. Если этого не сделать, то данные невозможно будет корректно обработать.
  • символ двойной кавычки в поле должен быть удвоен.

Вместе с тем стандарт рекомендует быть вольным в отношении данных, получаемых от сторонних источников, при обработке CSV.

Пример

Исходный текст:

1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture «Extended Edition»","",4900.00
1996,Jeep,Grand Cherokee,"MUST SELL! air, moon roof, loaded",4799.00

Результирующая таблица:

1997FordE350ac, abs, moon3000
1999ChevyVenture «Extended Edition»4900
1996JeepGrand CherokeeMUST SELL! air, moon roof, loaded4799

Для русифицированного Microsoft Excel (при разделителе ;) исходный текст будет выглядеть так:

1965;Пиксель;E240 – формальдегид (опасный консервант)!;"красный, зелёный, битый";"3000,00"
1965;Мышка;"А правильней использовать ""Ёлочки""";;"4900,00"
"Н/д";Кнопка;Сочетания клавиш;"MUST USE! Ctrl, Alt, Shift";"4799,00"

Результирующая таблица:

1965ПиксельE240 — формальдегид (опасный консервант)!красный, зелёный, битый3000
1965МышкаА правильней использовать "Ёлочки"4900
Н/дКнопкаСочетания клавишMUST USE! Ctrl, Alt, Shift4799

Программы для редактирования CSV-файлов

Формат файла CSV поддерживается практически всеми электронными таблицами и системами управления базами данных, включая LibreOffice Calc, Gnumeric, Emacs, Microsoft Excel, Numbers, ТаблицаПро, CSVed, KSpread, Google Docs.

Импорт и экспорт CSV-файлов возможен во многих инженерных пакетах, например, ANSYS и LabVIEW.

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.