【问题标题】:Create excel file using PHP compatible for 2007 and 2003使用兼容 2007 和 2003 的 PHP 创建 excel 文件
【发布时间】:2010-10-18 16:55:59
【问题描述】:

我正在使用 PHP fopen 创建一个 .xls 文件

写入内容并将其附加到文件中。与 Excel 2003 配合良好。

但 excel 2007 在作为不受支持的类型打开之前显示警报。

如果我创建扩展名为 .xlsx 的文件,它不会在 2003 年打开。

是否有任何标准方法在 2003 和 2007 版本中都可以正常工作。

【问题讨论】:

    标签: php excel excel-2007


    【解决方案1】:

    使用PHPExcel。它是免费的,可以直接读/写 Excel 03/07 文件。 PEAR库里有Spreadsheet_Excel_Writer,但是基本死了,只支持写BIFF5文件,对应Excel '95('97?不确定...)

    【讨论】:

    • 供以后参考,BIFF5 为 Excel5/95,BIFF8 为 Excel97/2003
    【解决方案2】:

    你实际写的是什么格式?编写 Excel 文件不仅仅是给任意文件一个扩展名为 xlsx 或 xls 的问题。

    为了通用性,你可以写一个BIFF5或BIFF8 xls文件(所有版本的Excel post 95都会读这个),或者有Excel 2003 XML格式,Excel 2003和Excel2007都可以打开(和Excel 2010以及)。

    【讨论】:

    • 正在创建一个 .xls 文件,将内容以 \t 制表符分隔的形式写入文件。
    • @zod - 不,您不是在创建 xls 文件,而是在创建一个制表符分隔的文件...不要给它一个 xls 扩展名:Excel 2007 基本上是在告诉您你在撒谎,你声称的是一个 xls 文件不是这样的东西。尝试以逗号分隔值而不是制表符分隔的形式写入,并为其提供 .csv 的扩展名(Excel 应该可以毫无问题地打开它),或者创建一个真正的 xls BIFF5 或 BIFF8 文件。
    • 是的。这是我现在唯一的方法。
    • @zod - 如果您不需要格式化或多个工作表或 Excel 的任何其他特殊功能,则创建 CSV 文件会更容易:如果您确实需要任何这些额外功能,那么有仍然可以选择使用 Excel 的可用 PHP 库之一创建真正的 MS Excel 文件
    【解决方案3】:

    如果您不需要任何格式,甚至不需要多张工作表,最简单的方法就是创建一个逗号分隔的文件。 (.csv) 2003 和 2007 可以打开那些就好了。在 PHP 中也更容易处理

    【讨论】:

    • 不是他要求的,但是对!只要您不需要生成复杂的 XLS 文件(包括不同的工作表和其他元数据),CSV 就是要走的路,不过,我想这作为评论会更有意义
    • 实际上正在将制表符分隔的文件写入 .xls 文件。这不是我知道的纯 xls。那么如何将内容写入纯 xls 文件?
    • 仅将其保存为 .XLS 并不能使其成为 .XLS ...我很惊讶它完全可以工作。如果您将扩展名更改为 .csv(即使使用制表符分隔),它也应该在 2007 年导入
    【解决方案4】:

    我敢打赌,他想要做的事情与我想要的相同:创建一个制表符分隔的文件(而不是逗号分隔的文件),以避免处理单元格中的撇号或逗号。只是 $field_contents 。 "\t" 。 $next_field_contents

    我们知道,如果我们创建一个以逗号分隔且扩展名为 CSV 的文件,浏览器会将其发送到 Excel(不知何故)。我想要的(提问者可能想要的)是一种方式:

    1. 生成一个制表符分隔的文件
    2. 让浏览器告诉操作系统让 Excel 打开它
    3. (但不要问用户任何问题,例如关于格式的问题)

    那些不知道怎么做的,请嘘!但是如果有人知道这是否可能,请说出来!!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 2011-07-18
      • 2011-12-28
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多