Файл CSV

CSV

Самый простой табличный формат: строки таблицы - строки текста, колонки разделены знаком. Вся его сложность в том, что этот знак и кодировка у всех разные.

Разделитель

В англоязычном мире это запятая, в русскоязычном - чаще точка с запятой, потому что запятая занята дробной частью числа. Файл с точкой с запятой, открытый как «через запятую», покажет одну колонку на всю таблицу, и наоборот.

Кодировка

Если вместо русских букв в ячейках вопросы или знакомая абракадабра, файл сохранён в одной кодировке, а прочитан в другой. Надёжный путь - UTF-8; часть табличных процессоров опознаёт её только при наличии служебной метки в начале файла, поэтому в списке форматов сохранения и встречается отдельный пункт «UTF-8 с BOM».

Кавычки и переносы

Если внутри ячейки есть разделитель, кавычка или перенос строки, ячейку берут в двойные кавычки, а кавычку внутри удваивают. Это единственное правило CSV, которое действительно стоит помнить: из-за него один неэкранированный символ сдвигает всю таблицу на колонку вправо.

Числа, даты и ведущие нули

CSV не хранит типов, поэтому тип угадывает программа при открытии - и часто угадывает не так. Классика: код 007 превращается в 7, длинный артикул - в экспоненциальную запись, а дата «05.11» - в текущий год. Лечится указанием текстового типа колонки при импорте, а не после него.

Во что переводят

Обратный перевод из XLSX в CSV всегда теряет формулы, оформление и все листы кроме одного: в файле остаются только значения.

Перед отправкой откройте CSV обычным текстовым редактором и посмотрите на первые три строки. Тридцать секунд проверки экономят час разбирательств с тем, почему у получателя всё съехало.