【问题标题】:CSV File Import Strangeness: Only Imports if Resaved in ExcelCSV 文件导入奇怪:仅在 Excel 中重新保存时才导入
【发布时间】:2011-07-31 10:47:50
【问题描述】:

我对尝试导入 MYOB 的 csv (.txt) 文件的情况感到有些眼花缭乱。使用 Drupal CMS 以及视图和视图奖励模块,我能够快速获取一个提要,该提要将获取所需字段并将它们放入 csv(制表符分隔)txt 文件中。

这是发生奇怪问题的地方。如果我尝试将文件直接导入 MYOB 程序,则会跳过记录,因为显然某个字段与 myob 文件中的数据不匹配(“购买时的税码”字段)。但是,如果我在 Excel 中打开 txt 字段,然后重新保存文件(不更改任何内容,什么都没有),然后在 Myob 中进行导入,一切正常 100%。

我查看了源代码以检查 Content-Type 和 Content-disposition 标头,但它们都没有问题。

header('内容类型: text/csv; charset=utf-8'); header('Content-disposition: attachment; filename="[thefilename].txt"');

我已检查以确保从字段中删除空格和换行符等。

有人知道这里可能出了什么问题吗?我应该检查什么?解决方法有效,但只是引入了一个额外的“不必要”过程。

【问题讨论】:

    标签: php drupal csv import


    【解决方案1】:

    请参考CSV-1203 File Format Specification。具体而言,请参阅Append A使用 Excel 时的已知问题”,其中解释了 Excel 如何在不告诉您的情况下损坏数据。

    【讨论】:

      【解决方案2】:

      我建议 Drupal 使用 unix 样式的行尾 (http://en.wikipedia.org/wiki/Newline),并且在 Excel 中打开和保存会将这些更改为 MYOB 使用的 Windows 样式的行尾。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-27
        • 2022-01-23
        • 2017-08-22
        • 1970-01-01
        相关资源
        最近更新 更多