最有效的创建Excel文件的方法

时间:2010-10-28 19:45:23

标签: php phpexcel

寻找即时创建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);

2 个答案:

答案 0 :(得分:4)

PHPExcel还有其他选项,如列出的here

但是在你解雇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问题列表中有一个活动的工作项。

答案 1 :(得分:0)

是的。您可以使用Pear's Spreadsheet_Excel_Writer。它只创建BIFF8或更旧的文件(Word 2003),但它运行良好。

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