Экспорт данных при наличии точки с запятой в полях

Статус
В этой теме нельзя размещать новые ответы.

Петр

Посетитель
Здравствуйте!
Необходимо экспортировать данные из Руны в CSV файл. В базе содержаться тексты, в которых присутствуют знак точка с запятой. Поэтому использование этого символа в качестве разделителя не проходит. Вижу в настройках возможность указать разделитель CSV. Методом тыка нашел, что можно указать в качестве разделителя точку, запятую и точку с запятой. Но все это не подходит, так как в текстовых полях все это есть. Какие еще разделители могут быть?
Как можно решить эту проблему иначе?
 

Vladimir

Администратор
Команда форума
Добрый день, Пётр!
Программа экспортирует данные по стандартам формата CSV (https://ru.wikipedia.org/wiki/CSV).
Если в поле встречаются символ разделителя (в русском варианте - это точка с запятой), двойная кавычка или символ переноса (для текстового поля), то при экспорте значение поля берётся в двойные кавычки, а внутренние кавычки удваиваются.
При импорте данных из файла .csv производится анализ и преобразование данных к нормальному виду.
Выбор типа разделителя в настройках предназначен для того, чтобы производить экспорт/импорт с отличным от установленного в системе разделителем:
Настройка формата в операционной системе.png

Какая именно проблема у Вас возникает? На стороне конструктора или в сторонней программе?
 

Петр

Посетитель
Попробую пояснить еще раз с иллюстрациями.
Необходимо экспортировать данные из Руны в CSV файл. В базе содержаться тексты, в которых присутствуют знак точка с запятой.
Вот фрагмент Runa, в одном из полей содержится текст с точкой и с запятой:
Снимок Runa 1.png

Экспортирую в CSV файл данные и открываю в Excel. До записи, в которой содержится точка с запятой все идет нормально.
После первой точки с запятой в текущую запись уже ничего не пишется (На снимке ниже видно, что поля "Дата уведомления", "Папка" - пустые)

Снимок Excel 1.png

дальше все пишется в новую запись. Причем с первого поля:

Снимок Excel 2.png

и это продолжается до первой точки с запятой, а потом все снова.

При этом, все поля пишутся дальше со сдвигом и дальше полная неразбериха.
 
Последнее редактирование модератором:

Vladimir

Администратор
Команда форума
Какая у Вас версия MS Excel?
Проверили у себя (MS Office Standart 2019): при открытии файла .csv не определён формат данных, но данные одного текстового поля попадают в одну ячейку. При выполнении операции импорта с заданием формата UTF-8 - данные попадают в одну ячейку, но клеятся в строку, что решается двойным кликом по ячейке.
 

Петр

Посетитель
Проверял для
1.Excel для Microsoft 365
2.Excel 2016
Результат один и тот же. Точка с запятой в текстовом поле переносит все последующие данные на другую запись в Excel
 

Петр

Посетитель
Воспроизвел ошибку в пробном проекте. Вам отправил сам проект, файл .csv и файл Excel.

Ошибка присутствует. Но, похоже, я не правильно сформулировал. Дело не в символе «Точка с запятой», а в том, что символ перевода строки в текстовом поле воспринимается как окончание записи…

Как эту ошибку исправить?
 

Vladimir

Администратор
Команда форума
Спасибо за присланный пример.
Найти решение для MS Excel 2016 мы не нашли. Возможно кто-то сможет подсказать?
При открытии файла .csv в результате получаем кракозябры:
01.PNG
Тогда пробую получить данные из внешних данных, из текста:
02.PNG
В мастере преобразования текста задаю формат Юникод UTF-8:
03.PNG
На следующем шаге указываю символом-разделителем точку с запятой и ограничитель строк - двойные кавычки:
14.PNG
К сожалению Excel 2016 данные не преобразует правильно, не учитывая кавычки. Результат плачевный:
05.PNG

Если ту же операцию произвести в Excel 2019 (чуть иные действия в мастере преобразования текста), то получаем почти корректное предварительное представление данных:
21.PNG
После сформированного запроса получаем опять таки "почти" нормальный результат, но ячейки с несколькими строками требуют изменения (двойной клик) для получения окончательного и нормального документа:
22.PNG

Единственно нормальный результат можно получить при помощи OO/LO Calc, который не только корректно открывает документы формата UTF-8, но и по правилам преобразует файл .csv с полями, содержащими множество строк.
При открытии файла Calc сразу предлагает выбрать формат и разделитель полей (без всякого мастера):
11.PNG
Предварительный просмотр не даёт правильного представления, но это не важно.
Если поменять разделитель текста на одинарную кавычку, то получаем то самое представление, которое наблюдалось в Excel 2016. Т.е. Microsoft хоть и предлагает выбрать двойные кавычки, но их не обрабатывает:
12.PNG
По кнопке Ok сразу получаем абсолютно нормальный вид:
13.PNG
Можно сохранить файл в формате MS Excel, после чего открыть его в нём опять таки с полностью корректным результатом:
14.PNG
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу