1

У меня есть файл .csv, который был экспортирован из проприетарной системы электронных баз данных здравоохранения. Я был подписчиком их услуг, но по окончании своей подписки я смог сохранить свои данные и перенести их в другую систему. Короче говоря, мне нужно импортировать его в базу данных или электронную таблицу, чтобы затем я мог использовать Word Word Merge для воссоздания документов медицинских карт в удобочитаемом формате и их распечатки.

Проблема в том, что когда я открываю файл напрямую в Excel или импортирую его в Access, во многих записях полей данных появляются новые строки, которые неправильно интерпретируются как разделители записей. Это приводит к тому, что Excel или Access запускают новую строку в середине записи, что, конечно, приводит к ошибкам. Когда я открыл файл с помощью Notepad ++ и включил "Показать все символы", я вижу, что настоящие символы новой строки разделителя записей являются символами CR LF, но символы новой строки в записях сами по себе являются символами LF. Из некоторого быстрого прочтения я узнал, что записи полей данных CSV, которые содержат символ новой строки, в идеале должны быть заключены в двойные кавычки, но в моем файле их нет, поэтому я предполагаю, что это является источником проблемы.

Как мне исправить это? Есть ли способ с помощью Access, Excel или любой другой программы с открытым исходным кодом, чтобы он мог визуализировать LF самостоятельно в качестве новой строки форматирования в записи поля данных? Можете ли вы преобразовать соло LF в какой-то другой тип новой строки, чтобы они были правильно отображены? Даже если бы он игнорировал только LF, которым не предшествовал CR, то, возможно, когда я позже использую слияние Word для вывода документов, он затем правильно отобразит LF как переводы строки? Еще одна возможность, которая, как мне показалось, могла бы сработать, заключалась в том, чтобы выполнить какую-то операцию поиска / замены, чтобы заменить все одиночные ЛФ другим символом, пока я не импортировал их в базу данных, а затем заменить этот символ соответствующим видом новой строки, как только он окажется в базе данных или после того, как я создал документ по почте. Или есть какой-то тип операции поиска / замены, который может просто заключить каждую запись поля, содержащую одиночный LF в двойные кавычки? Черт возьми, даже если есть способ неизбирательно заключать каждую запись поля данных в файл в двойные кавычки, она все равно должна работать, верно? Я просто не уверен в самом простом способе перейти отсюда и ценю любые предложения.

2 ответа2

2

В notepad++ регулярное выражение «[^\r]\n» будет соответствовать LF, но не CRLF. Теперь замените это тем, что вы хотите. Этот ответ имеет полезную информацию.

0

Если CSV правильно заключен в кавычки, т. Е. Двойные кавычки вокруг всего, что может быть истолковано как разделитель «ячейки», то LibreOffice должен выполнить эту работу. (YMMV) См. Википедию для описания формата CSV.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .