【问题标题】:OpenOffice Calc can not read a simple CSV file. Why?OpenOffice Calc 无法读取简单的 CSV 文件。为什么?
【发布时间】:2011-05-17 14:08:26
【问题描述】:

我有一个网站 (PHP),它生成一个包含以下内容的 CSV 文件 (text/csv):

ID;E-Mail_User;姓名;应用程序;Rolle;Auftragsdatum;管理员 522;用户@域;WXDUILAS;ABCD;XYZ;2009-03-04 05:00:09;用户@域

当我选择 OpenOffice 来显示 CSV 文件时,只显示一个空的电子表格。不显示错误。当我尝试使用oocalc test.csv 打开文件时,也会发生同样的情况。我尝试过不同版本的 OpenOffice。

文件有什么问题?如何从 OpenOffice 中获取错误消息?

更新: 它与分号的使用没有任何关系。我已将文件减少到 4 个字符。内容为 ID;A 的文件将打开 CSV 导入对话框。但是ID;E 会打开一张空纸。为什么?

更新 2: 模式id;E 也有效。 ID;E 一定是某种魔法代码。有人知道是什么意思吗?

【问题讨论】:

  • 它确实与分号有关 - 仅包含 ID,E 的文件会导致导入对话框打开。正如马特所说,CSV 是逗号分隔的,不管你喜欢与否。
  • 问题是为什么ID;A 有效而ID;E 无效。
  • ooffice 中的错误?不管怎样,答案是生成正确的 CSV。

标签: csv openoffice.org openoffice-calc


【解决方案1】:

身份证;在文件的前 3 个字符中是 SYLK 文件的签名。第四个字符可以是 P、N 或 E,它标记有关应如何处理文件其余部分的某些信息……因此,当读取初始签名时,您的“CSV”文件几乎肯定会被解析为 SYLK 文件,并且文件的其余部分不是有效的 SYLK 格式。

【讨论】:

  • Excel 表现出相同的行为。 support.microsoft.com/en-us/help/323626/… - “SYLK 文件是以“ID”或“ID_xxxx”开头的文本文件,其中 xxxx 是文本字符串。SYLK 文件的第一条记录是 ID_Number 记录。当 Excel 在开头识别此文本时文本文件,它将文件解释为 SYLK 文件。” - 即使将第一列标题更改为 id 也可以解决问题。
【解决方案2】:

CSV 表示 C omma S 分隔的 V alues,这不是您的文档包含的内容。

这些是分号。

如果可能,更改 PHP 代码以生成它(实际上是 CSV):

ID,E-Mail_User,Name,Applikation,Rolle,Auftragsdatum,Administrator
522,user@domain,WXDUILAS,ABCD,XYZ,2009-03-04 05:00:09,user@domain

...或使用Text Import 对话框将; 指定为分隔符。

【讨论】:

  • 如果浏览器启动 oocalc 似乎是不可能的。
  • 如果你不告诉程序分隔符是 ; 而不是 , 它不会神奇地知道这一点。
【解决方案3】:

在 ID 后添加空格(即“ID”)。

不是完美的解决方案,但对我有用。

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 1970-01-01
    • 2021-04-01
    • 2016-07-09
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 2020-01-02
    • 2012-02-17
    相关资源
    最近更新 更多