我有一些 CSV 导入代码无法导入 Excel for Mac 2016 导出的文件。
CSV 导入代码可以完美地处理 {CR}、{LF} 或 {CR}{LF} 行结尾,但 Excel for Mac 正在导出具有完全断行结尾的文件。
例如,如果我从这样的工作表开始:
Foo|Bar
---+---
123|456
我希望它在导出到 CSV 时看起来像这样:
Foo,Bar{CR}123,456
(我不在乎使用哪个行结尾——它可以是 {CR}、{LF} 或 {CR}{LF},我的 CSV 导入代码会正确处理它)。
但是,这是 Excel for Mac 2016 实际导出它的方式:
Foo,Bar{CR}{CR}{LF}123,456
如果我尝试将其保存为“Windows CSV”,那么它实际上会添加一个额外的列,但根本不会修复行尾:
Foo,Bar,{CR}{CR}{LF}123,456,
导出到 CSV 时我应该使用一组特定的选项吗?
编辑:我应该补充一点,如果我从 Excel for Mac 2016 导出到 CSV,然后立即在 Excel for Windows 2016 中打开文件,它会在每行数据之间添加一个额外的行,如下所示:
Foo|Bar
---+---
|
---+---
123|456
所以这不仅仅是我的 CSV 导入代码的问题 - 即使 Excel for Windows 也无法正确读取 Excel for Mac CSV 文件。
最佳答案
我想就我在 Mac OS X 10.12.6 上使用 Excel 版本 16.9 for Mac 看到的内容添加更多细节。
R
导出 CSV 时在我的 Mac 上,所有行都以 {LF} 结尾。 R
导出的 CSV 文件时作为附件,接收到的附件中的所有行都以 {CR}{LF} 结尾。因此 Mac Mail 将 {CR} 添加到行尾。与 Excel 添加 {CR} 字符的方式类似,这仍然显示为 OK;由于行尾,程序只会认为它来自 Windows。 这是一种奇怪的行为,并且有可能破坏下游软件,这些软件使用从 Mac 上的 Excel 导出然后通过电子邮件发送给用户的 CSV 文件。除了避免使用 Mac Mail 发送 CSV 附件外,我目前不知道任何解决方法。
关于Excel for Mac 2016 - 另存为 CSV - 行尾错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557912/