CSV вариант №
Файлы с расширением .csv (значения, разделенные запятыми) представляют собой простые текстовые файлы, содержащие записи данных со значениями, разделенными запятыми. Каждая строка в CSV-файле — это новая запись из набора записей, содержащихся в файле. Такие файлы формируются, когда предполагается перенос данных из одной системы хранения в другую. Поскольку все приложения умеют распознавать записи через запятую, импорт таких файлов данных в базу данных осуществляется очень удобно. Почти все приложения для работы с электронными таблицами, такие как Microsoft Excel или OpenOffice Calc, могут импортировать CSV без особых усилий. Данные, импортированные из таких файлов, располагаются в ячейках электронной таблицы для представления пользователю.
Краткая история
Ниже приведены некоторые краткие факты о происхождении и истории формата файла CSV.
1972 - Компилятор IBM Fortran (расширенный уровень H) поддерживал их в OS/360.
1978 - ввод/вывод по спискам поддерживался FORTRAN 77, в котором в качестве разделителей использовались запятые и пробелы.
2005 г. — CSV был стандартизирован с помощью RFC4180 в качестве типа содержимого MIME.
2013 — недостатки RFC4180 были устранены по рекомендации W3C.
2015 г. — W3C подготовил первые проекты рекомендаций для стандартов метаданных CSV, которые начинались как рекомендации в декабре 2015 г.
Конвертировать файлы CSV
Файлы CSV можно преобразовать в несколько различных форматов файлов с помощью приложений, которые могут открывать эти файлы. Например, Microsoft Excel может импортировать данные из файлов формата CSV и сохранять их в XLS, XLSX, PDF, TXT , XML и HTML. Точно так же другие настольные и онлайн-сервисы предоставляют возможность экспорта файлов CSV в форматы HTML, ODS и RTF.
Формат файла CSV
Известно, что формат файла CSV указан в RFC4180. Он определяет любой файл как совместимый с CSV, если:
- Каждая запись располагается на отдельной строке, разделенной разрывом строки (CRLF). Например:
- ааа, bbb, ccc CRLF
- zzz,yyy,xxx CRLF
- Последняя запись в файле может иметь или не иметь конечного разрыва строки. Например:
- ааа, bbb, ccc CRLF
- ззз,гггг,ххх
- В качестве первой строки файла может быть необязательная строка заголовка с тем же форматом, что и обычные строки записи. Этот заголовок будет содержать имена, соответствующие полям в файле, и должен содержать то же количество полей, что и записи в остальной части файла (наличие или отсутствие строки заголовка должно быть указано через необязательный параметр «заголовок» этого файла). MIME-тип). Например:
- имя_поля,имя_поля,имя_поля CRLF
- ааа, bbb, ccc CRLF
- zzz,yyy,xxx CRLF
- В заголовке и каждой записи может быть одно или несколько полей, разделенных запятыми. Каждая строка должна содержать одинаковое количество полей по всему файлу. Пробелы считаются частью поля и не должны игнорироваться. За последним полем в записи не должно следовать запятая. Например:
- ааа, ббб, ссс
- Каждое поле может быть заключено или не заключено в двойные кавычки (однако некоторые программы, такие как Microsoft Excel, вообще не используют двойные кавычки). Если поля не заключены в двойные кавычки, то двойные кавычки могут не появляться внутри полей. Например:\
- “ааа”, “bbb”, “ccc” CRLF
- ззз,гггг,ххх
- Поля, содержащие разрывы строк (CRLF), двойные кавычки и запятые, должны быть заключены в двойные кавычки. Например:
- “ааа”, “б CRLF
- bb”, “ccc” CRLF
- ззз,гггг,ххх
- Если для заключения полей используются двойные кавычки, то двойные кавычки, появляющиеся внутри поля, должны быть экранированы, если перед ними поставить другую двойную кавычку. Например:
- “ааа”, “б”, “бб”, “ссс”
Однако в свете современного использования разделитель не ограничивается только запятой и может быть также точкой с запятой, табуляцией или пробелами. Такие приложения, как Microsoft Excel, предоставляют возможность указать символ-разделитель для импорта записей из файла CSV.