2

寻找动态创建 Excel 文件的 PHP 解决方案(思考动态报告)。

现在我已经看过PHP Excel,我知道我可以创建一个 CSV 文件,但这些是最佳选择吗?

我使用 PHP Excel 在 Linux 系统上运行此脚本,但它没有设置所有选项

$objPHPExcel->getProperties()->setCreator("Phill");
$objPHPExcel->getProperties()->setLastModifiedBy("Phill");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX");

此外,如果我给出扩展名 .xls 而不是 .xlsx 它会抛出一个无效文件并且不会打开。(注意:我正在使用 Open Office 查看生成的 excel 表)

想知道是否还有其他/更好的解决方案?

编辑:

我如何保存文件

$file = '/path/to/777/dir/file.xlsx'; // not viewable by public
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save($file);
4

2 回答 2

4

有 PHPExcel 的替代品,如此处所列

但在您解雇 PHPExcel 之前,我想知道它为什么不起作用。这通常可以正常工作,没有任何问题;但是您的代码段没有显示有关保存文件的任何内容。您如何保存文件:您使用的是哪个作家?

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('/path/to/777/dir/file.xls');

编辑

或者

$file = '/path/to/777/dir/file.xls'; // not viewable by public 
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 
$objWriter->save($file); 

Open Office 的最新版本(我相信)也会读取 .xlsx 文件,但如果它们具有正确的扩展名,它确实更喜欢。

请注意,Excel5 Writer 不支持文档属性(尽管 Excel2007 支持)。PHPExcel 问题列表中有一个活动的工作项。

于 2010-10-28T19:49:20.480 回答
0

就在这里。您可以使用Pear 的 Spreadsheet_Excel_Writer。它只创建 BIFF8 或更旧的文件 (Word 2003),但效果很好。

编辑:我刚刚注意到他们说它需要完全重写,并且不建议将其用于新开发。我已经在生产系统中使用它大约 3 年了,除了一些小错误之外,它对我来说非常有用......

于 2010-10-28T19:48:24.377 回答