在SAE上使用PHPExcel的注意事项
2016-09-02 12:02
183 查看
PHPExcel下载
从Githube上下载PHPExcel的zip包,我用的1.8.1版本。zip包里有库文件和一些测试代码。本地运行环境使用一切正常
之前为了方便编辑代码,在本地用虚拟机装了个CentOS系统,建了个站点,把PHPExcel上传后,运行测试代码,均正常。SAE上的问题及分析
运行“01simple-download-xlsx.php”是有问题,下载的文件里只有一句XMLWriter缺失错误。Fatal error: Class 'XMLWriter' not found in PHPExcel/Classes/PHPExcel/Shared/XMLWriter.php on line 44
这是因为SAE的标准空间没有XMLWriter这个类。
好在运行“01simple-download-xls.php”是正常的,说明依靠XMLWriter的2007版文件无法生成,但只依靠XML扩展的2003版没问题。
又找了些测试例子来运行,比如“05featuredemo.php”。先将Save Excel 2007 file部分的代码注释掉,运行时出错:
Warning: fopen(/data1/www/htdocs/587/thbim/2/PHPExcel/Examples/05featuredemo.xls) [function.fopen]: failed to open stream: Permission denied in PHPExcel/Classes/PHPExcel/Shared/OLE/PPS/Root.php on line 90 Fatal error: Uncaught exception 'PHPExcel_Writer_Exception' with message 'Can't open /data1/www/htdocs/587/thbim/2/PHPExcel/Examples/05featuredemo.xls. It may be in use or protected.' in /data1/www/htdocs/587/thbim/2/PHPExcel/Classes/PHPExcel/Shared/OLE/PPS/Root.php:93 Stack trace: #0 /data1/www/htdocs/587/thbim/2/PHPExcel/Classes/PHPExcel/Writer/Excel5.php(226): PHPExcel_Shared_OLE_PPS_Root->save('/data1/www/htdo...') #1 /data1/www/htdocs/587/thbim/2/PHPExcel/Examples/05featuredemo.php(63): PHPExcel_Writer_Excel5->save('/data1/www/htdo...') #2 {main} thrown in PHPExcel/Classes/PHPExcel/Shared/OLE/PPS/Root.php on line 93
这是因为SAE的标准空间不允许写操作,于是我把保存路径设为Storage的路径:
$objWriter->save(str_replace('.php', '.xls', __FILE__)); //修改为: $objWriter->save('saestor://upload/info.xls');
终于顺利运行,在Storage中的upload目录生成了info.xls,打开如下图:
里面包含了文本和图片,基本功能也够用了,我就没继续测试下去。
总结
-保存文件时选择Excel5,即2003版excel文件-保存路径用Storage
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('saestor://upload/info.xls');
相关文章推荐
- sae使用svn部署代码注意事项
- 关于phpexcel使用的框架总应该注意的事项
- 使用Oracle9i数据库的九大注意事项
- response.sendRedirect()使用注意事项
- ruby中字符串的转码 使用方法以及注意事项
- C++构造函数中使用new时应注意的事项!
- 在asp.net 2.0中使用CuteEditor 5.0的一个注意事项
- 使用CommandBuilder为DataAdaper生成的Command更新数据源时的注意事项!
- [小结]select的使用注意事项
- 使用UltraWebGrid控件分页功能注意事项
- C#使用CDO发送邮件 注意事项!!!
- 使用Ajax技术获得服务端信息时的注意事项
- 我也再补充一个NANT使用注意事项
- 使用Oracle9i数据库的注意事项
- (To Me Just)c#中的WebBrowser类的使用注意事项!
- 在oracle中字段类型LONG的使用注意事项
- struts在页面中使用form标记的注意事项
- Rhapsody 5.2在VS.NET 2003中使用的注意事项
- 在jsp使用标签库的一些注意事项
- 关于使用存储过程的一些好处以及注意事项