我有一个从专有电子健康记录数据库系统导出的 .csv 文件。我曾是他们服务的订户,但在终止订阅后,我可以通过这种方式保留我的数据并将其迁移到另一个系统。简而言之,我需要将其导入数据库或电子表格,以便我可以使用 Word 邮件合并以可读格式重新创建医疗记录文档并将其打印出来。
问题是,当我直接用 Excel 打开文件或用 Access 导入文件时,许多数据字段条目中的格式化换行符会被误解为记录分隔符。这会导致 Excel 或 Access 在条目中间开始一个新行,这当然会搞砸事情。当我用 Notepad ++ 打开文件并打开“显示所有字符”时,我可以看到真正的记录分隔符换行符是 CR LF 符号,但条目中的格式化换行符本身是 LF 符号。通过快速阅读,我了解到包含换行符的 CSV 数据字段条目最好用双引号括起来,但我的文件中没有,所以我推测这是问题的根源。
我该如何解决这个问题?有没有办法使用 Access、Excel 或任何开源程序让其将 LF 本身渲染为数据字段条目中的格式化换行符?您可以将单独的 LF 转换为其他换行符类型,以便正确渲染它们?即使它只忽略前面没有 CR 的 LF,那么当我稍后使用 Word 邮件合并输出文档时,也许它会将 LF 正确渲染为换行符?我认为可能可行的另一种可能性是执行某种查找/替换操作,将所有单独的 LF 替换为另一个字符,直到我将其导入数据库,然后在数据库或通过邮件合并创建文档后将该字符替换为适当的换行符。或者是否有某种类型的查找/替换操作可以将每个包含单独 LF 的字段条目括在双引号中?哎呀,即使有一种方法可以非选择性地将文件中的每个数据字段条目括在双引号中,它仍然应该有效,对吗?我只是不确定从这里开始的最简单的方法是什么,并感谢任何建议。
答案1
在 notepad++ 中,正则表达式“[^\r]\n”将匹配 LF,但不匹配 CRLF。现在将其替换为您想要的任何内容。这回答有有用的信息。