【问题标题】:Excel for Mac 2016 - Save As CSV - Bad Line EndingsExcel for Mac 2016 - 另存为 CSV - 行尾错误
【发布时间】:2016-06-01 01:07:10
【问题描述】:

我有一些 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 10.11.5 上使用 Excel 2016 或 2011 进行复制
  • 我可以确认在 Mac OS X 版本 10.12.6 上使用 Excel 版本 16.9 (180116) 存在此问题。这很奇怪,鉴于上面@dawg 的评论,考虑到我使用的操作系统版本比他高。我在所有方面都与 djhayman 指出的行为相同。

标签: excel macos csv line-endings


【解决方案1】:

我想就我在使用 Excel 版本 16.9 for Mac 在 Mac OS X 10.12.6 上看到的内容添加更多细节。

  • 当我在 Mac 上从 R 导出 CSV 时,所有行都以 {LF} 结尾。

  • 当我在 MS Excel 中打开导出的 CSV 文件时,除了通过单击 Ctrl+S 重新保存文件之外什么都不做,结果行结尾更改为 {CR}{LF}。因此 Excel 将 {CR} 添加到行尾。碰巧这仍然可以读取,因为 {CR}{LF} 是标准的 Windows 行结尾。

  • 当我使用 Mac Mail 发送从 R 导出的 CSV 文件作为附件时,收到的附件中的所有行都以 {CR}{LF} 结尾。因此 Mac Mail 将 {CR} 添加到行尾。类似于 Excel 添加 {CR} 字符的方式,这仍然显示为 OK;由于行尾,程序只会认为它来自 Windows。

  • 当我使用 Mac Mail 将我从 Excel 保存为附件的 CSV 文件通过电子邮件发送时,收到的附件中的所有行都以 {CR}{CR}{LF} 结尾。当在 Windows 上查看时,这会在 CSV 中添加一个额外的回车。在记事本中查看时,多余的行被隐藏,但在 Excel 中查看时,由于添加了 {CR},因此在每个原始行之间插入了额外的空白行。

这是一种奇怪的行为,可能会破坏下游软件,这些软件使用从 Mac 上的 Excel 导出然后通过电子邮件发送给用户的 CSV 文件。除了避免使用 Mac Mail 发送 CSV 附件之外,我目前不知道任何解决方法。

【讨论】:

    【解决方案2】:

    好的 - 我相信我可能已经找到了答案。

    我之前没有提到它,因为我从来没有想过它可能会导致这个问题,但是在导出每个 CSV 文件后,我将它通过电子邮件发送到 Windows PC 以进行测试。

    显然,Mac Mail 损坏了附加 CSV 文件中的行尾!

    来源:https://discussions.apple.com/thread/2235362

    当这些文件直接上传并使用我的 CSV 导入代码处理时,我仍然看到问题,因此我必须查看 Safari 是否也损坏了 CSV 文件。

    【讨论】:

      【解决方案3】:

      代替Excel导出功能,将数据复制到文本编辑器,例如。 Mac 上的文本编辑。
      (新窗口,格式 -> 制作纯文本)
      然后将数据列分隔符(相邻列值之间的间隙)从 TextEdit 窗口复制到“查找”对话框, 并在“替换为”框中键入“,”(不带引号)。
      单击“全部替换”,您的 Excel 数据将在 TextEdit 窗口中以逗号分隔。
      以 .csv 扩展名保存文件。

      它应该可以在 Mac 和 Windows 版本的 MS Excel 中打开。

      在 Mac OSX 10.6.8 和 Win 10 上测试。

      【讨论】:

        猜你喜欢
        • 2018-11-01
        • 2015-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-20
        • 2018-03-28
        • 2017-09-30
        相关资源
        最近更新 更多