php导出excel失败原因,PHPExcel导出Excel文件报找不到该文件错误
本文主要讲解关于PHPExcel兼容PHP版本和操作execl知识
目前解决问题:兼容PHP版本问题。
阐述下:小伙子我改bug的过程,如下:线下将代码写好(无错误),本地Apache服务器测试-->正常,打开导出的execl文件中数据也正常;到服务器上就会报找不到该文件错误,如图:
火狐浏览器,谷歌浏览器是直接说该文件已迁移什么的
历程:重新审查代码,定位到$objWriter->save('php://output')这行出问题,万般无奈看插件源码,找来找去发现save方法返回的对象并没有问题!接着去找百度,说是php.ini中的extension=php_zip模块没有开启,进入conf文件,Windows下面编译好的PHP5.6.31并没有这个配置;没办法了,只剩下最后一个必杀技了(看文档):查找PHPExcel官方文档,发现是PHPExcel兼容PHP版本问题,线上的PHP7.0,本地的5.6.31;好了,按照官方说法将PHPExcel插件替换成1.8.1的,再次测试,nice,so beautiful.解决问题
下面是头部关键代码:
//输出EXCEL格式
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
// 从浏览器直接输出$filename
header('Content-Type:application/csv;charset=UTF-8');
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-excel;");
header("Content-Type:application/octet-stream");
header('Content-Disposition: attachment;filename="'.$name.'.xls"');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
操作execl知识(设置Excel基本样式信息):
$objPHPExcel = new \PHPExcel();
// 设置excel文档的属性
$objPHPExcel->getProperties()->setCreator("WSTMart")//创建人
->setLastModifiedBy("WSTMart")//最后修改人
->setTitle($name)//标题
->setSubject($name)//题目
->setDescription($name)//描述
->setKeywords("订单")//关键字
->setCategory("Test result file");//种类
// 开始操作excel表
$objPHPExcel->setActiveSheetIndex(0);
// 设置工作薄名称
$objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', 'Sheet'));
// 设置默认字体和大小
$objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', ''));
$objPHPExcel->getDefaultStyle()->getFont()->setSize(11);
$styleArray = array(
'font' => array(
'bold' => true,
'color'=>array(
'argb' => 'ffffffff',
)
),
'borders' => array (
'outline' => array (
'style' => \PHPExcel_Style_Border::BORDER_THIN, //设置border样式
'color' => array ('argb' => 'FF000000'), //设置border颜色
)
)
);
//设置宽
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(50);
$objPHPExcel->getActiveSheet()->getStyle('A1:P1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1:P1')->getFill()->getStartColor()->setARGB('333399');
$objPHPExcel->getActiveSheet()->setCellValue('A1', '订单编号')->setCellValue('B1', '订单状态')->setCellValue('C1', '收货人')->setCellValue('D1', '收货地址')->setCellValue('E1', '联系方式')
->setCellValue('F1', '支付方式')->setCellValue('G1', '配送方式')->setCellValue('H1', '买家留言')->setCellValue('I1', '发票信息')->setCellValue('J1', '订单总金额')->setCellValue('K1', '运费')
->setCellValue('L1', '实付金额')->setCellValue('M1', '下单时间')->setCellValue('N1', '发货时间')->setCellValue('O1', '收货时间')->setCellValue('P1', '取消/拒收原因');
$objPHPExcel->getActiveSheet()->getStyle('A1:P1')->applyFromArray($styleArray);
Excel表格内容填充
for ($row = 0; $row < count($page); $row++){
$i = $row+2;
$objPHPExcel->getActiveSheet()->setCellValue('A'.$i, $page[$row]['orderNo'])->setCellValue('B'.$i, $page[$row]['status'])->setCellValue('C'.$i, $page[$row]['userName'])->setCellValue('D'.$i, $page[$row]['userAddress'])
->setCellValue('E'.$i, $page[$row]['userPhone'])->setCellValue('F'.$i, $page[$row]['payTypeName'])->setCellValue('G'.$i, $page[$row]['deliverType'])->setCellValue('H'.$i, $page[$row]['orderRemarks'])->setCellValue('I'.$i, $page[$row]['invoiceClient'])
->setCellValue('J'.$i, $page[$row]['totalMoney'])->setCellValue('K'.$i, $page[$row]['deliverMoney'])->setCellValue('L'.$i, $page[$row]['realTotalMoney'])->setCellValue('M'.$i, $page[$row]['createTime'])->setCellValue('N'.$i, $page[$row]['deliveryTime'])
->setCellValue('O'.$i, $page[$row]['receiveTime'])->setCellValue('P'.$i, $page[$row]['logContent']);
}
php导出excel失败原因,PHPExcel导出Excel文件报找不到该文件错误相关推荐
- php导出excel失败原因,PHPExcel中导出Excel出错的一种可能原因
PHPExcel是PHP中功能最强大的导入.导出.操作Microsoft Excel的开源项目. 虽然,目前有很多方法能够在PHP页面上导出csv文件,但是经过测试发现使用通常方式在PHP中导出的Ex ...
- php下载图片excel过大,PHPExcel导出图片大小设置问题
使用PHPExcel导出图片到excel的时候,图片大小只会按照一定的比例显示,不能按照自己的要求显示大小,不知道怎么解决,有哪位大神帮下我吗? $objDrawing = new PHPExcel_ ...
- php导出服务器表格乱码,phpExcel导出, 在本地正常,在服务器乱码解决办法
phpExcel导出, 在本地正常,在服务器乱码 如题,在服务器运行时.... 重复一下,在本地运行是正常的,放上服务就成这样了,代码如下... $excel=new \PHPExcel(); do{ ...
- php 浏览器打开excel文件夹里,php网页显示excel表格数据-phpexcel 读取excel里的数据并在页面显示出来...
网页如何调用excel表格中的数据? $retdata=array(); //内容 //二维数 $filename= "文.csv"; //生成头文件 $now = gmdate( ...
- php导入excel 日期,使用PHPExcel导入excel数据时,日期错误的问题
通过PHPExcel将excel表格的数据导入数据库时,如果表格中存在日期单元格式,这个单元数据读到php中会变成一串数字, 因此我们在读取的时候,需要将日期进行格式化:function get_da ...
- php流导出excel内存溢出,phpExcel导出大量数据出现内存溢出错误的解决方法
phpExcel将读取的单元格信息保存在内存中,我们可以通过 复制代码代码如下: PHPExcel_Settings::setCacheStorageMethod() 来设置不同的缓存方式,已达到降低 ...
- php 导出excel 2007,使用PHPExcel导出Excel表
/** * Excel导出 * @param $fileName(文件名) * @param $headArr (表头) * @param $data (每一行的数据) * @throws \PHPE ...
- 从Excel文件中找出在TXT文件中没有出现的 行之_代码片段
#从data.txt(Excel文件)中找出一些不在target.txt(TXT文件)文件行中出现的行. #定义一个函数,判断ls中的每个单词是否出现在了mystring中了.如果全部都在,返回真de ...
- mysql导出txt文件报错_mysql导入txt文件
1.首先在命令行启动mysql net start mysql 2.登录MySQL(建议使用非root用户) mysql --local-infile=1 -u one -p 3.创建数据库 如 CR ...
最新文章
- Python数据分析与挖掘
- 【Android 内存优化】垃圾回收算法 ( 分代收集算法 | Serial 收集器 | ParNew 收集器 | Parallel Scavenge 收集器 | CMS 并发标记清除收集器 )
- 托管数据中心之间的PUE比较(下)
- SQL Server 2008 BIDS组件的安装
- 开源NewSQL – CockroachDB在百度内部的应用与实践
- android源码下载过程的一些注意事项,windows下载android源码
- SQL数据去重复 Distinct 和 row_number() over()
- PL\SQL结构控制、异常
- Spring核心包介绍
- command not found: npm
- android隐藏前台服务通知,Android的startForeground前台Service如何去掉通知显示
- 腾讯入股艺龙,在线旅游市场引发关注
- 验证数据是否满足正态分布——Q-Q图和P-P图
- EndNote简明教程(三分钟上手EndNote)
- LeetCode 881.救生艇
- LeetCode刷题笔记2——数组2
- 【UE4】给制作的小地图加上方向指针
- matplotlib animation 模拟弹簧的强迫振动 以及odeint函数的应用
- 初出茅庐的第一篇文章
- Windows Vista SP1
热门文章
- SAP CDS view自学教程之八:SAP Fiori Elements里不同类型的annotation
- how to debug Opportunity change implementation - entry onOKParticipantDialog
- SAP UI5 Model destroy
- why our extension project didn't load S3 view and controller
- 如何在SAP云平台ABAP编程环境里创建自己的Z表
- WordPress设置页面的加载机制
- SAP Fiori Launchpad上的错误消息 - User Parameter /UI2/WD_TRKORR_CUST is not maintained
- JavaScript 里变量名前面加了大括号代表什么含义
- SAP CRM settype的创建,背后发生了什么
- Hybris开发环境的license计算实现