繁体   English   中英

创建Excel文件的最有效方法

[英]Most effective way to create Excel files

寻找一个PHP解决方案以动态创建Excel文件(请考虑动态报告)。

现在,我已经了解了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);

此处列出 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问题列表上有一个活跃的工作项。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM