本文主要讲解关于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文件报找不到该文件错误相关推荐

  1. php导出excel失败原因,PHPExcel中导出Excel出错的一种可能原因

    PHPExcel是PHP中功能最强大的导入.导出.操作Microsoft Excel的开源项目. 虽然,目前有很多方法能够在PHP页面上导出csv文件,但是经过测试发现使用通常方式在PHP中导出的Ex ...

  2. php下载图片excel过大,PHPExcel导出图片大小设置问题

    使用PHPExcel导出图片到excel的时候,图片大小只会按照一定的比例显示,不能按照自己的要求显示大小,不知道怎么解决,有哪位大神帮下我吗? $objDrawing = new PHPExcel_ ...

  3. php导出服务器表格乱码,phpExcel导出, 在本地正常,在服务器乱码解决办法

    phpExcel导出, 在本地正常,在服务器乱码 如题,在服务器运行时.... 重复一下,在本地运行是正常的,放上服务就成这样了,代码如下... $excel=new \PHPExcel(); do{ ...

  4. php 浏览器打开excel文件夹里,php网页显示excel表格数据-phpexcel 读取excel里的数据并在页面显示出来...

    网页如何调用excel表格中的数据? $retdata=array(); //内容 //二维数 $filename= "文.csv"; //生成头文件 $now = gmdate( ...

  5. php导入excel 日期,使用PHPExcel导入excel数据时,日期错误的问题

    通过PHPExcel将excel表格的数据导入数据库时,如果表格中存在日期单元格式,这个单元数据读到php中会变成一串数字, 因此我们在读取的时候,需要将日期进行格式化:function get_da ...

  6. php流导出excel内存溢出,phpExcel导出大量数据出现内存溢出错误的解决方法

    phpExcel将读取的单元格信息保存在内存中,我们可以通过 复制代码代码如下: PHPExcel_Settings::setCacheStorageMethod() 来设置不同的缓存方式,已达到降低 ...

  7. php 导出excel 2007,使用PHPExcel导出Excel表

    /** * Excel导出 * @param $fileName(文件名) * @param $headArr (表头) * @param $data (每一行的数据) * @throws \PHPE ...

  8. 从Excel文件中找出在TXT文件中没有出现的 行之_代码片段

    #从data.txt(Excel文件)中找出一些不在target.txt(TXT文件)文件行中出现的行. #定义一个函数,判断ls中的每个单词是否出现在了mystring中了.如果全部都在,返回真de ...

  9. mysql导出txt文件报错_mysql导入txt文件

    1.首先在命令行启动mysql net start mysql 2.登录MySQL(建议使用非root用户) mysql --local-infile=1 -u one -p 3.创建数据库 如 CR ...

最新文章

  1. Python数据分析与挖掘
  2. 【Android 内存优化】垃圾回收算法 ( 分代收集算法 | Serial 收集器 | ParNew 收集器 | Parallel Scavenge 收集器 | CMS 并发标记清除收集器 )
  3. 托管数据中心之间的PUE比较(下)
  4. SQL Server 2008 BIDS组件的安装
  5. 开源NewSQL – CockroachDB在百度内部的应用与实践
  6. android源码下载过程的一些注意事项,windows下载android源码
  7. SQL数据去重复 Distinct 和 row_number() over()
  8. PL\SQL结构控制、异常
  9. Spring核心包介绍
  10. command not found: npm
  11. android隐藏前台服务通知,Android的startForeground前台Service如何去掉通知显示
  12. 腾讯入股艺龙,在线旅游市场引发关注
  13. 验证数据是否满足正态分布——Q-Q图和P-P图
  14. EndNote简明教程(三分钟上手EndNote)
  15. LeetCode 881.救生艇
  16. LeetCode刷题笔记2——数组2
  17. 【UE4】给制作的小地图加上方向指针
  18. matplotlib animation 模拟弹簧的强迫振动 以及odeint函数的应用
  19. 初出茅庐的第一篇文章
  20. Windows Vista SP1

热门文章

  1. SAP CDS view自学教程之八:SAP Fiori Elements里不同类型的annotation
  2. how to debug Opportunity change implementation - entry onOKParticipantDialog
  3. SAP UI5 Model destroy
  4. why our extension project didn't load S3 view and controller
  5. 如何在SAP云平台ABAP编程环境里创建自己的Z表
  6. WordPress设置页面的加载机制
  7. SAP Fiori Launchpad上的错误消息 - User Parameter /UI2/WD_TRKORR_CUST is not maintained
  8. JavaScript 里变量名前面加了大括号代表什么含义
  9. SAP CRM settype的创建,背后发生了什么
  10. Hybris开发环境的license计算实现