CSV может выглядеть как простой текстовый файл, но одна запятая внутри названия способна превратить одно поле в два, а неправильно обработанная кавычка изменить всю структуру строки. Поэтому перед печатью этикеток важно проверять не только содержимое ячеек, но и то, как программа импорта понимает разделитель, кавычки, кодировку и типы данных.
Распространённый вариант CSV использует запятую как разделитель полей. В таком формате поле с запятой, переносом строки или прямой двойной кавычкой заключается в прямые двойные кавычки, а кавычка внутри такого поля удваивается. Но разные программы могут использовать другие соглашения, например точку с запятой вместо запятой, поэтому параметры конкретного импорта нужно проверять отдельно.
Возьмем собственный пример из трёх полей:
ID: 0012
Название: Коробка, малая
Подпись: Набор "Дом"
Одна корректно оформленная строка при разделителе-запятой выглядит так:
0012,"Коробка, малая","Набор ""Дом"""
После правильного импорта программа должна получить три поля: ID 0012, название «Коробка, малая» и подпись «Набор "Дом"».
Не открывайте CSV с предположением, что разделителем обязательно является запятая. Программа печати или промежуточный редактор может ожидать запятую, точку с запятой или предлагать выбрать разделитель при импорте.
Если файл создан с запятой, а программа читает точку с запятой, вся строка может попасть в одно поле. При обратной ситуации содержимое может разбиться неправильно.
В доступном окне импорта проверьте Разделитель и сразу посмотрите, как распределились значения по полям. В нашем примере должны появиться именно три логических значения, а не четыре части из-за запятой внутри «Коробка, малая».
Не пытайтесь определять правильность по количеству запятых в строке. Запятая может быть частью значения и находиться внутри кавычек.
В названии «Коробка, малая» запятая является частью текста, а не границей между столбцами. Поэтому при формате с разделителем-запятой всё поле заключено в прямые двойные кавычки:
"Коробка, малая"
Это позволяет программе отличить запятую внутри значения от разделителя между полями.
Не исправляйте проблему глобальной заменой всех запятых на другой символ. Запятые могут быть нужны в самом тексте, а изменение разделителя должно выполняться согласованно при экспорте и импорте.
Лучше сохранить исходные данные отдельно и получить CSV средствами программы, которая умеет экспортировать их с выбранным разделителем и корректным цитированием полей.
В третьем поле нашего примера есть прямые двойные кавычки:
Набор "Дом"
Поскольку само поле заключено в двойные кавычки, каждая внутренняя прямая двойная кавычка записывается дважды:
"Набор ""Дом"""
После корректного импорта значение снова должно отображаться как «Набор "Дом"».
Речь идёт именно о прямой двойной кавычке. Типографские кавычки вроде «ёлочек» являются другими символами и не выполняют автоматически служебную функцию CSV.
Не добавляйте и не удаляйте кавычки вручную по всему файлу без понимания структуры. Если данных много, безопаснее исправить исходные значения и повторить экспорт.
Текстовое поле может содержать перенос строки. В распространённой CSV-схеме такое значение заключают в прямые двойные кавычки, и перенос остаётся частью одного поля.
Поэтому визуально многострочная запись в текстовом редакторе не всегда означает две отдельные строки данных.
При импорте проверяйте результат по записям: значение с внутренним переносом должно остаться у своего ID, а следующая запись не должна сместиться в соседний столбец или превратиться в продолжение предыдущей.
Если программа импорта не поддерживает такую структуру ожидаемым образом, не пытайтесь чинить готовый файл случайными удалениями переносов. Сначала выясните требования именно этого импорта и при необходимости подготовьте данные заново.
ID 0012 должен остаться именно 0012, если четыре символа являются частью идентификатора.
Некоторые программы при импорте могут определить такое значение как число и показать 12. Кавычки в CSV сами по себе не гарантируют, что получатель сохранит значение как текст.
Поэтому в настройках импорта, если такая возможность доступна, задайте для столбца ID текстовый тип или другой режим, сохраняющий исходное значение. После импорта обязательно найдите несколько ID с начальными нулями и сравните их с источником.
Это особенно важно перед массовой печатью этикеток из Excel и CSV, когда одна ошибка определения типа может повториться сразу во многих строках.
Правильные разделители не помогут, если после импорта русские буквы превратились в непонятные символы.
При экспорте сохраните исходник и зафиксируйте выбранную кодировку. При импорте выберите ту же кодировку, если программа позволяет сделать это явно.
UTF-8 широко используется, но не нужно считать его автоматически поддерживаемым любой программой печати. Главное, чтобы кодировка экспортированного файла и возможности программы импорта совпадали.
После открытия файла проверьте реальные строки с кириллицей, а не только заголовки столбцов.
Первая строка файла может содержать названия полей, например ID, Название и Подпись, либо сразу первую запись.
Если программа импорта предлагает параметр вроде Первая строка содержит заголовки, установите его в соответствии с фактической структурой файла.
Ошибка на этом шаге приводит к двум типичным результатам: заголовки печатаются как обычная этикетка либо первая реальная запись ошибочно принимается за названия столбцов.
После импорта сопоставьте поля макета с нужными столбцами и проверьте, что Название получает название, Подпись получает подпись, а ID не подменён соседним значением.
Не ограничивайтесь первой простой строкой. Выберите записи, которые проверяют разные риски:
ID с нулями: 0012.
Поле с запятой: Коробка, малая.
Поле с кавычками: Набор "Дом".
Строка с кириллицей: проверить реальные русские символы.
Многострочное поле: если оно действительно присутствует в данных.
Откройте именно импортированный результат в программе печати и убедитесь, что каждое значение осталось у своей записи.
Для физического носителя подбирайте этикетки по нужному размеру и типу материала, совместимому с конкретным принтером. Корректный CSV отвечает за структуру данных, но не подтверждает совместимость расходника.
После этого напечатайте несколько контрольных экземпляров со сложными значениями. Если «Коробка, малая» разделилась, 0012 превратился в 12 или кавычки появились в неправильном виде, остановите серию и исправьте экспорт или параметры импорта, а не готовый макет каждой этикетки по отдельности.