CSV: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Спасено источников — 1, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.8
м Удаление шаблонов: {{Нп4}}×2
 
(не показано 14 промежуточных версий 9 участников)
Строка 23: Строка 23:
|nocat=1
|nocat=1
}}
}}
'''CSV''' (от {{lang-en|Comma-Separated Values}} — значения, разделённые запятыми) — [[текстовый файл|текстовый]] [[Формат файла|формат]], предназначенный для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми.
'''CSV''' (от {{lang-en|Comma-Separated Values}} — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми.


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


== Спецификация ==
== Спецификация ==
* Каждая [[Перевод строки|строка файла]] — это одна строка таблицы.
* Каждая [[Перевод строки|строка файла]] — это одна строка таблицы.
* Разделителем ({{lang-en|delimiter}}) значений колонок является символ [[Запятая|запятой]] (<code>,</code>). Однако на практике часто используются другие разделители, то есть формат путают с {{нп4|DSV||en|Delimiter-separated values}} и [[TSV]] (см. ниже).
* Разделителем ({{lang-en|delimiter}}) значений колонок является символ [[Запятая|запятой]] (<code>,</code>). Однако на практике часто используются другие разделители, то есть формат путают с [[DSV]] и [[TSV]] (см. ниже).
* Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными [[кавычки|кавычками]] (<code>"</code>). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.
* Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными [[кавычки|кавычками]] (<code>"</code>). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.


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


=== Стандарт <nowiki>RFC 4180</nowiki> ===
=== Стандарт <nowiki>RFC 4180</nowiki> ===
Строка 45: Строка 45:
* символ двойной кавычки в поле должен быть удвоен.
* символ двойной кавычки в поле должен быть удвоен.


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


== Пример ==
== Пример ==
Исходный текст:
Исходный текст:
1997,Ford,E350,"ac, abs, moon",3000.00
1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture «Extended Edition»","",4900.00
1999,Chevy,"Venture ""Extended Edition""", ,4900.00
1996,Jeep,Grand Cherokee,"MUST SELL! air, moon roof, loaded",4799.00
1996,Jeep,Grand Cherokee,"MUST SELL! air, moon roof, loaded",4799.00
Результирующая таблица:
Результирующая таблица:
Строка 56: Строка 56:
|1997||Ford||E350||ac, abs, moon||3000
|1997||Ford||E350||ac, abs, moon||3000
|-
|-
|1999||Chevy||Venture «Extended Edition»|| ||4900
|1999||Chevy||Venture "Extended Edition"|| ||4900
|-
|-
|1996||Jeep||Grand Cherokee||MUST SELL! air, moon roof, loaded||4799
|1996||Jeep||Grand Cherokee||MUST SELL! air, moon roof, loaded||4799
Строка 79: Строка 79:


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

== Примечания ==
{{примечания}}


== Ссылки ==
== Ссылки ==

Текущая версия от 21:11, 19 сентября 2024

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

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

Формат 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

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

1997 Ford E350 ac, abs, moon 3000
1999 Chevy Venture "Extended Edition" 4900
1996 Jeep Grand Cherokee MUST SELL! air, moon roof, loaded 4799

Для русифицированного 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, Shift 4799

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

[править | править код]

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

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

Примечания

[править | править код]