web-dev-qa-db-ja.com

このCSVファイルの改行をデータベースまたはスプレッドシートに正しくインポートするにはどうすればよいですか?

独自の電子健康記録データベースシステムからエクスポートされた.csvファイルがあります。私は彼らのサービスの購読者でしたが、購読を終了すると、これが私のデータを保持して別のシステムに移行する方法です。一言で言えば、それをデータベースまたはスプレッドシートにインポートして、Wordの差し込み印刷を使用して医療記録文書を読み取り可能な形式で再作成して印刷できるようにする必要があります。

問題は、Excelでファイルを直接開くか、Accessでファイルをインポートすると、レコード区切り文字として誤って解釈される多くのデータフィールドエントリ内にフォーマット改行があることです。これにより、ExcelまたはAccessはエントリの途中で新しい行を開始しますが、これはもちろん問題を引き起こします。メモ帳++でファイルを開き、[すべての文字を表示]をオンにすると、実際のレコード区切り文字の改行はCR LF記号ですが、エントリ内のフォーマット改行は= LF記号自体。いくつかの簡単な読みから、改行を含むCSVデータフィールドエントリは理想的には二重引用符で囲む必要があることがわかりましたが、ファイル内のエントリはそうではないので、これは問題の原因。

これを修正するにはどうすればよいですか? Access、Excel、または任意のオープンソースプログラムを使用して、データフィールドエントリ内のフォーマット改行としてLFを単独でレンダリングする方法はありますか?ソロLFを他の改行タイプに変換して、適切にレンダリングされるようにすることはできますか? CRが前に付いていないLFのみを無視したとしても、後でWordの差し込み印刷を使用してドキュメントを出力すると、LFが改行として適切にレンダリングされますか?私がうまくいくと思ったもう1つの可能性は、データベースにインポートするまですべてのソロLFを別の文字に置き換え、データベースに入るとその文字を適切な種類の改行に置き換える、ある種の検索/置換操作を実行することでした。または、差し込み印刷でドキュメントを作成した後。または、すべてのデータフィールドを非選択的に囲む方法がある場合でも、ソロLFを二重引用符で囲む)を含む各フィールドエントリを囲むことができる、ある種の検索/置換操作はありますか?二重引用符で囲んだファイルのエントリは、まだ機能するはずですよね?ここから先に進んで、提案に感謝する最も簡単な方法がわかりません。

1
Fonebone

Notepad ++では、正規表現 "[^\r]\n"はLFに一致しますが、CRLFには一致しません。次に、これを必要なものに置き換えます。この answer には有用な情報があります。

2
Wishwas

CSVが適切に引用されている場合、つまり「セル」を区切ると解釈される可能性のあるすべてのものを二重引用符で囲んでいる場合は、 LibreOffice がその役割を果たします。 (YMMV)CSV形式の説明については、 Wikipedia を参照してください。

0
Malte