Tablora · Библиотека
Прочитать кавычку внутри поля CSV
В CSV две двойные кавычки внутри поля в кавычках обозначают одну кавычку. Посмотрите, как анализатор читает She said "hello" и почему обратная косая черта не работает.
Как CSV записывает кавычку внутри значения
Поле CSV, в котором есть кавычка, само должно быть заключено в кавычки, а каждая кавычка внутри него пишется дважды. Поэтому текст ячейки She said "hello" хранится в файле как "She said ""hello""". Внешние кавычки — это синтаксис; каждая удвоенная пара внутри обозначает один настоящий символ кавычки.
Некоторые программы вместо этого ставят перед кавычкой обратную косую черту — соглашение, заимствованное из языков программирования. Анализатор следует правилу CSV, а не этому соглашению, поэтому кавычка с обратной косой чертой не принимается как экранирование.
Проверка строки Poster
В примере на странице заголовок item,note и одна запись, у которой note равно "She said ""hello""", а разделителем полей служит запятая. Анализатор показывает 2 строки и 2 столбца. В строке 2, столбце 2 стоит She said "hello" — ровно с одной кавычкой перед hello и одной после.
Если в предпросмотре вы видите по две кавычки с каждой стороны от hello, значит, в источнике поле не было заключено в кавычки и текст, скорее всего, вообще не является корректным CSV.
Ввод, который не разбирается
- Кавычка посреди поля без кавычек, например She said "hi" без окружающих кавычек, отклоняется. Инструмент показывает «Проверьте введённые значения и повторите попытку.», а не гадает, где заканчивается поле.
- Обратная косая черта перед кавычкой её не экранирует, поэтому текст, выгруженный с такими экранированиями, отклоняется по той же причине.
- Символы после закрывающей кавычки, как в "hello"x, тоже отклоняются.
- Если выбрано «Определить разделитель», анализатор пробует запятую, точку с запятой, табуляцию и вертикальную черту и сообщает об ошибке, только если ни один из них не позволяет разобрать текст.
- Поле в кавычках должно начинаться сразу после разделителя или в начале строки, поэтому пробел перед открывающей кавычкой тоже приводит к отклонению.
Исправление и экспорт текста в кавычках
- Найдите поле в исходной выгрузке и проверьте, есть ли в программе, которая её создала, стандартный вариант CSV.
- Если исправляете вручную, заключите всё поле в кавычки и удвойте каждую кавычку внутри.
- Снова нажмите «Рассчитать» и убедитесь, что в ячейке одиночные кавычки.
- Когда предпросмотр правильный, нажмите «Скачать (CSV)»: при записи кавычки снова удваиваются по тому же правилу, так что другая программа сможет прочитать файл.
Кавычки в экспорте из приложения
Экспорт в CSV в приложении Tablora следует тому же правилу, когда в ячейке есть кавычка, запятая или перевод строки: ячейка заключается в кавычки, а внутренние кавычки удваиваются. В экспорте в XLSX кавычка — просто часть текста ячейки, поэтому никакого экранирования вы не увидите.
Входные данные
- Текст таблицы
- item,note Poster,"She said ""hello"""
- Разделитель полей
- ,
Результаты
- Строки
- 2
- Столбцы
- 2
| item | note |
|---|---|
| Poster | She said "hello" |
- Строки с другой шириной
- 0