【问题标题】:When downloading a .CSV file the CRLF line breaks are missing, but Excel can load it fine. Can I fix the CRLF without loading Excel?下载 .CSV 文件时,缺少 CRLF 换行符,但 Excel 可以正常加载。我可以在不加载 Excel 的情况下修复 CRLF 吗?
【发布时间】:2020-12-29 16:41:32
【问题描述】:

我正在从系统中检索 .csv 文件格式的每日日志。我想将这些导入我的数据库。问题是,出于某种原因,这些 .csv 文件似乎缺少 CRLF 行尾(它正在被 LF 取代)。如果我在 Notepad++ 中打开文件,所有行结尾都是 LF - 这将不起作用,因为上传时我使用 CRLF 确定行并使用 LF 确定列将文件拆分到数据库中。

如果我在 Excel 中打开 .csv 文件并将其另存为 .csv 文件,则会添加 CRLF,我可以将其上传到数据库。

我不明白当我用notepad++阅读while时,所有的结尾都是LF,但是Excel可以以某种方式区分哪些是真正的CRLF,哪些是LF?

该文件是 4-8MB,因此 Excel 需要一段时间才能打开它(+-30 秒?),所以我想知道是否有人知道问题是什么以及是否有其他方法可以解决它而不是打开它在 Excel 或 CSV 编辑器中并再次保存。对于我希望摆脱的其他自动化流程来说,这是非常不必要的工作。

谢谢!

Correct format, after opening and saving with Excel

The csv file after downloading, without opening and saving again

【问题讨论】:

  • 在文件上运行unix2dos
  • @AlanBirtles 您好,感谢您的回答。我现在使用的是运行 Windows 的工作计算机,我无法安装任何未经授权的软件。有没有办法在 Windows 上做类似的事情?我可以在我的个人电脑上尝试一下,看看它是否有效
  • 我运行了 unix2dos,但是它将所有 LF 更改为 CRLF,使文件在我的情况下同样无法使用......我真的不明白 Excel 如何区分它
  • 一个示例文件可能有助于理解问题

标签: csv line newline break lf


【解决方案1】:

这有点难说,但如果问题是:“为什么 excel 可以打开这些”,答案可能很简单:因为他们设计了它。

所有软件都生成了很多不正确的text/csv,所以也许 Excel 工程师只是认为值得解析这些,即使它是错误的。编写可以识别\n\r\n 的软件并不难,也就是说...如果您正在生成CSV,您应该\r\n 用于可以识别的软件 关心行尾。

【讨论】:

  • 啊,从 Excel 的角度来看,这是有道理的。不幸的是,我不是生成这些文件的人,所以我必须使用我所拥有的。奇怪的是,当获取文件时,它似乎都是 LF LF LF(乘以数千行),所以如果 Excel 可以以某种方式区分它,我是否应该以其他方式区分它?我更新了标题以更好地反映我的问题。
  • 鉴于 csv 并不是真正标准化的,你不能说 LF 是“错误的”,它充其量是非常规的
  • 如果您的问题是“我可以在不使用 excel 的情况下修复这些文件吗”,那么有很多 CLI 工具可用于修复可能只有 1 个 google 搜索的行尾。
猜你喜欢
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多