如何解决PHP7导出Excel时出现ERR_EMPTY_RESPONSE的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计675个文字,预计阅读时间需要3分钟。
PHP在本地可正常导出Excel,但在Linux上提示ERR_EMPTY_RESPONSE,下面简单说明如何不降低版本还能正常导出Excel,并解决上述问题。
使用导出Excel时,错误页面提示如下:
[Error] Call to a member function execute() on null
此时,可能是Excel生成类没有正确初始化或配置。以下是一些解决步骤:
1. 确保Excel生成类(如PHPExcel)已正确安装并引入到项目中。
2.检查Excel生成类实例化时的参数是否正确。
3.在生成Excel前,检查是否有必要的数据或配置未设置。
4.尝试使用不同版本的PHPExcel或PHPExcel_Reader,以排除兼容性问题。
以下是一个简单的示例代码,展示如何使用PHPExcel生成Excel文件:
php
// 创建PHPExcel对象$objPHPExcel=new PHPExcel();
// 设置表头$objPHPExcel->getActiveSheet()->setCellValue('A1', '姓名');$objPHPExcel->getActiveSheet()->setCellValue('B1', '年龄');$objPHPExcel->getActiveSheet()->setCellValue('C1', '职业');
// 设置数据$objPHPExcel->getActiveSheet()->setCellValue('A2', '张三');$objPHPExcel->getActiveSheet()->setCellValue('B2', '30');$objPHPExcel->getActiveSheet()->setCellValue('C2', '工程师');
// 保存Excel文件$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save('example.xlsx');?>
在解决上述问题时,您可以尝试以下步骤:
1. 检查PHPExcel类是否已正确引入到项目中。
2.确保在生成Excel前,数据已正确设置。
3.尝试使用不同版本的PHPExcel或PHPExcel_Reader。
4.如果问题依然存在,可以尝试联系PHPExcel的官方论坛或社区寻求帮助。
PHP在本机可以正常导出Excel,在上Linux就提示ERR_EMPTY_RESPONSE,下面说一下怎么不降版本还能正常导出Excel,解决上面的问题。
使用导出Excel的时候显示错误页面提示如下,这时候发现上传Excel都可以正常读取数据,只是导出的时候不可以。
我这里使用的PHP版本是7.1。PHPExcel版本用的是1.8.1。github地址:
github.com/PHPOffice/PHPExcel/tree/1.8.1。可以看到作者已经3年没更新过了。
将PHPExcel里面的Class内容都拷贝到thinkphp的vendor目录下。重命名为PHPExcel。也就是将之前老的插件换成这个1.8.1的版本。
具体怎么写Excel和引入插件我就不说了。说下代码方面的写法。
问题其实集中出现在Excel输出这里。(下面是成功导出Excel的写法,前面生成Excel的部分略去了)定义头部后直接输出。
$filename = "模板文件".date("YmdHis").rand(1000,9999);$filename = iconv("utf-8", "gb2312", $filename);header("Pragma: public");header("Expires: 0");header("Cache-Control:must-revalidate, post-check=0, pre-check=0");header("Content-Type:application/force-download");header("Content-Type:application/vnd.ms-execl");header("Content-Type:application/octet-stream");header("Content-Type:application/download");;header('Content-Disposition:attachment;filename='.$filename.'.xls');header("Content-Transfer-Encoding:binary");$objWriter->save('php://output');
也可以使用PhpSpreadsheet来读写Excel。
github:github.com/PHPOffice/PhpSpreadsheet
文档:phpspreadsheet.readthedocs.io/en/develop/
以上就是关于PHP7导出Excel报ERR_EMPTY_RESPONSE的相关解决步骤和方法,感谢大家的阅读和对易盾网络的支持。
本文共计675个文字,预计阅读时间需要3分钟。
PHP在本地可正常导出Excel,但在Linux上提示ERR_EMPTY_RESPONSE,下面简单说明如何不降低版本还能正常导出Excel,并解决上述问题。
使用导出Excel时,错误页面提示如下:
[Error] Call to a member function execute() on null
此时,可能是Excel生成类没有正确初始化或配置。以下是一些解决步骤:
1. 确保Excel生成类(如PHPExcel)已正确安装并引入到项目中。
2.检查Excel生成类实例化时的参数是否正确。
3.在生成Excel前,检查是否有必要的数据或配置未设置。
4.尝试使用不同版本的PHPExcel或PHPExcel_Reader,以排除兼容性问题。
以下是一个简单的示例代码,展示如何使用PHPExcel生成Excel文件:
php
// 创建PHPExcel对象$objPHPExcel=new PHPExcel();
// 设置表头$objPHPExcel->getActiveSheet()->setCellValue('A1', '姓名');$objPHPExcel->getActiveSheet()->setCellValue('B1', '年龄');$objPHPExcel->getActiveSheet()->setCellValue('C1', '职业');
// 设置数据$objPHPExcel->getActiveSheet()->setCellValue('A2', '张三');$objPHPExcel->getActiveSheet()->setCellValue('B2', '30');$objPHPExcel->getActiveSheet()->setCellValue('C2', '工程师');
// 保存Excel文件$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save('example.xlsx');?>
在解决上述问题时,您可以尝试以下步骤:
1. 检查PHPExcel类是否已正确引入到项目中。
2.确保在生成Excel前,数据已正确设置。
3.尝试使用不同版本的PHPExcel或PHPExcel_Reader。
4.如果问题依然存在,可以尝试联系PHPExcel的官方论坛或社区寻求帮助。
PHP在本机可以正常导出Excel,在上Linux就提示ERR_EMPTY_RESPONSE,下面说一下怎么不降版本还能正常导出Excel,解决上面的问题。
使用导出Excel的时候显示错误页面提示如下,这时候发现上传Excel都可以正常读取数据,只是导出的时候不可以。
我这里使用的PHP版本是7.1。PHPExcel版本用的是1.8.1。github地址:
github.com/PHPOffice/PHPExcel/tree/1.8.1。可以看到作者已经3年没更新过了。
将PHPExcel里面的Class内容都拷贝到thinkphp的vendor目录下。重命名为PHPExcel。也就是将之前老的插件换成这个1.8.1的版本。
具体怎么写Excel和引入插件我就不说了。说下代码方面的写法。
问题其实集中出现在Excel输出这里。(下面是成功导出Excel的写法,前面生成Excel的部分略去了)定义头部后直接输出。
$filename = "模板文件".date("YmdHis").rand(1000,9999);$filename = iconv("utf-8", "gb2312", $filename);header("Pragma: public");header("Expires: 0");header("Cache-Control:must-revalidate, post-check=0, pre-check=0");header("Content-Type:application/force-download");header("Content-Type:application/vnd.ms-execl");header("Content-Type:application/octet-stream");header("Content-Type:application/download");;header('Content-Disposition:attachment;filename='.$filename.'.xls');header("Content-Transfer-Encoding:binary");$objWriter->save('php://output');
也可以使用PhpSpreadsheet来读写Excel。
github:github.com/PHPOffice/PhpSpreadsheet
文档:phpspreadsheet.readthedocs.io/en/develop/
以上就是关于PHP7导出Excel报ERR_EMPTY_RESPONSE的相关解决步骤和方法,感谢大家的阅读和对易盾网络的支持。

