Что мне следует сделать с символами новой строки в этом CSV-файле, чтобы его можно было правильно импортировать в базу данных или электронную таблицу?

Что мне следует сделать с символами новой строки в этом CSV-файле, чтобы его можно было правильно импортировать в базу данных или электронную таблицу?

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

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

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

решение1

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

решение2

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

Связанный контент