如何使用 PHP 将数据写入 Excel?

13

使用PHP fwrite() 可以将内容附加到 .xls 文件吗?

当我尝试使用 fwrite() 时,结果文件会导致Excel 2007中出现错误消息。

是否可以使用特定的分隔符来实现此目的?

是否可以在没有第三方库的情况下实现此操作?


3
可能是PHP_excel的替代方案 - 虽然问题不完全相同,但其中的列表将回答你的问题。 - Gordon
你的Excel文件是什么格式?是CSV文件、BIFF5或8 .xls文件,还是MS Office OpenXML .xlsx文件? - Mark Baker
@Gordon。先生,请仔细阅读问题。我已经有一个Excel文件了,我想使用fwrite而不使用类将其写入该文件。这里有些人只是在贬低投票。他们不能给出答案。FTW。 - zod
1
我没有点踩。我确实阅读了这个问题。到目前为止,我已经给出了1393个答案。我已经同意我关闭的那个问题并不完全是你所要求的。尽管如此,还有很多其他关于如何追加Excel文件的问题(http://stackoverflow.com/search?q=append+excel+file+php)。不幸的是,你没有提到你的Excel文件的文件格式(就像Mark Baker已经指出的那样),所以很难找到一个合适的重复项。在我看来,最好使用“Excel类”。 - Gordon
我在去年2010年十月份提出了这个问题。那个月我得到了一个踩的票,没关系,我也接受了一个答案。今天我又被踩了一票(2011年7月)。真讨厌。 - zod
7个回答

21
你可以使用PhpSpreadsheet库来读取现有的Excel文件,向其中添加新的行/列,然后将其写回为真正的Excel文件。
免责声明:我是该库的作者之一。

@MarkBaker:使用您的库,是否可以将数据写入新的Excel文件中? - Hitesh
@Hitesh - 完全可以使用PHPExcel使用PHP创建Excel电子表格。 - Mark Baker
@Hitesh - 如果你遇到问题,那么请“提出问题”(这是一个问答板块,而不是论坛),不要仅仅在回答其他问题的评论中提出。如果你遇到错误,请说明你正在做什么(适当时展示代码)以及你遇到了哪些错误。 - Mark Baker
1
有人匿名尝试编辑此答案以提出另一个问题...这不是 StackOverflow 的工作方式。 - Mark Baker
@JeffDavis - 这是一个相当古老的链接,回答也很老了...我们已经在GitHub上运行了将近5年了...我已经使用github链接更新了答案。 - Mark Baker
显示剩余3条评论

6
您可以尝试创建一个CSV文件,如下所示:
name;surname;blabla
name;surname;blabla
name;surname;blabla
name;surname;blabla

Excel应该可以轻松处理这个 :)

使用PHP CVS函数非常方便:http://php.net/manual/en/function.fputcsv.php


1

1

Spreadsheet_Excel_Writer目前未维护(上次发布于2012-01-26)。同时会导致错误“文件错误:数据可能已丢失。”[Bug #12848 Excel“文件错误:数据可能已丢失。”](http://pear.php.net/bugs/bug.php?id=12848) [警告:Spreadsheet :: WriteExcel和Office Service Pack 3](https://groups.google.com/forum/?fromgroups=#!topic/spreadsheet-writeexcel/Pc6kDmYgrzo) - sumid

0

如果您只想/需要创建一个非常简单的表格,您只需要制作一个 *.csv 文件,该文件可以被 Excel 打开 - 但是:您不能在其中使用公式,也不能进行任何格式化。


2
实际上,您可以在 CSV 文件中使用公式,尽管您需要更加注意确保公式引用正确的行和列:R1C1 格式通常比 A1 格式地址更易于使用。 - Mark Baker

0

0

OP要求XLS,而你建议的类可以导出CSV。 - mahmoud nezar sarhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接