最近有个项目需要导出Excel表的功能,上网查了,发现有挺多缺陷的,有些太久远的了,phpExcel文件都无法下载,官网都迁移到github上了

第一步

去github下载phpexcel 下载地址

里面有他的例子和类,其实最主要的就是把里面的Class这个文件夹下的东西

第二步

直接上代码

public function output() {//导出商家信息Excel$xlsName = "shop";
//此处设置的是excel表的头部标题那一样,这块需要注意log_id,operator这些要和数据库的字段对应,操作用户,操作用户ip等根据需要自己编辑,和列表的<th></th>一样就可以$xlsCell = array(array('id', 'id'),//key 值需要跟 数据库的字段名一致array('name', '商品名字'),array('num', '库存'),array('money', '原价'),array('dzmoney', '现价'),array('fen', '分类'),array('sub_class', '二级分类'),array('danwei', '单位'),array('date', '时间'),array('shop_name', '店铺名字'),);$log = D('shuxin')->field('id,name,num,money,dzmoney,fen,sub_class,danwei,date,shop_name')->order('sp_fen asc')->select();$this->exportExcel($xlsName, $xlsCell, $log);}
//所有表格导出模板public function exportExcel($expTitle, $expCellName, $expTableData) {$xlsTitle = iconv('utf-8', 'gb2312', $expTitle); //文件名称$fileName = '所有商品表' . date('_YmdHis'); //or $xlsTitle 文件名称可根据自己情况设定$cellNum = count($expCellName);$dataNum = count($expTableData);require_once dirname(__FILE__)."/../Public/php_excel/PHPExcel.php";
//        require_once './xiaoshouxitong/Public/excel/PHPExcel.php';$objPHPExcel = new \PHPExcel();$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(22);$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10);$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(10);$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(20);$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(10);$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20);$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20);$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(25);$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(22);$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(12);$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(15);$objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合并单元格$objPHPExcel->getActiveSheet()->setCellValue('A1', '商品表')->getStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);for ($i = 0; $i < $cellNum; $i++) {$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);}// Miscellaneous glyphs, UTF-8for ($i = 0; $i < $dataNum; $i++) {for ($j = 0; $j < $cellNum; $j++) {$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 3), " ".$expTableData[$i][$expCellName[$j][0]]);}}ob_end_clean(); //清除缓冲区,避免乱码header('pragma:public');header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle. '.xls"');header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');exit;}

其实最大的问题就是那个引入的路径问题,在本地测试的和在线上测试的会有所不同,所以我采用了dirname(FILE)这个方法保证地址的一致
其中 require_once dirname(FILE).”/../Public/php_excel/PHPExcel.php”; 中的php_excel就是下载回来的Class文件夹

最后结果

如果需要特别的样式可以去看PHPExcel的手册或代码,这里就是个简单的导出而已

如果还有疑惑或者什么问题的欢迎留言
如果没有请帮我点赞,谢谢,嘻嘻i(^-^)V
首发简书 欢迎关注 我的简书
欢迎我的关注公众号

PHP传播者

推送最新文章和IT有趣新鲜知识科技

PHP导出Excel,亲测有用相关推荐

  1. office2010使用mathtype时,出现未找到MathPage.WLL解决方案--亲测有用

    office2010使用mathtype时,出现未找到MathPage.WLL解决方案--亲测有用 参考文章: (1)office2010使用mathtype时,出现未找到MathPage.WLL解决 ...

  2. 我的Bug日常:spark基于yarn运行时抛错,内存不足Required executor memory (1024 MB), offHeap memory (0) MB。问题已解决,亲测有用~~~

    问题描述: 在yarn集群上运行spark时,报了如下错误 主要内容: Exception in thread "main" java.lang.IllegalArgumentEx ...

  3. Windows10电脑用户中文名修改为英文名的详细教程【亲测有用】

    Windows10电脑用户中文名修改为英文名详细教程[亲测有用] 1.控制面板修改电脑名 2.注册表修改电脑名 3.文件夹修改电脑名 1.控制面板修改电脑名 第一步:Windows10左下角搜索控制面 ...

  4. 前端切图之svg图标的复用基于defs和use 亲测有用

    切图网长期致力于web前端开发外包服务,而我们也关注到现在图标很多时候采用svg更多一点,然后图标字体文件已经提供了很多种类的图标,不过采用svg图标可以自行选择更符合.更好看的图标,相比于字体图标更 ...

  5. 【亲测有用】腾讯会议共享PPT,并开启演讲者模式

    出发点:腾讯会议共享PPT(开启演讲者模型), 并且观看屏幕的人根本看不到你的演讲者模型,我这边Win10亲测有用(我单笔记本屏幕测试). 原理解释:通过播放PPT,产生了一个全屏,可以把它理解为是扩 ...

  6. vscode vetur 代码格式化优化设置(亲测有用)

    原文 vscode vetur 代码格式化优化设置(亲测有用) vue 文件在使用 vetur 格式化时,会默认把标签的每一个属性单独占一行,而且标签错位,可读性很差 1.点击左下角齿轮图标 --&g ...

  7. Mac - Android Studio 模拟器突然打不开了解决方法,亲测有用

    因突然关机导致Android Studio没有正常退出,重启时,Android Studio模拟器打不开了 完美解决,亲测有用 解决方法如下 1.查找文件夹 2.删除文件夹下面的所有后缀为lock的文 ...

  8. 根除任务栏天猫618超级狂欢红包广告方法,亲测有用

    一.试一下这个链接的方法 https://blog.csdn.net/m0_46108436/article/details/106517189?utm_source=blogxgwz7?utm_me ...

  9. 解决google翻译无法使用的问题(亲测有用)

    2022年10月1日,Google突然停止了Google翻译在中国大陆的业务,不再向中国大陆区域提供翻译服务,官方给出的理由是"因为使用率低"(这谁信啊!),导致我们日常无法使用谷 ...

  10. 浏览器报错Not allowed to load local resource:的解决办法,与网上大多数都不同,亲测有用!

    浏览器报错Not allowed to load local resource:的解决办法,与网上大多数都不同,亲测有用! 起因 报错原因 吐槽 解决办法 参考 起因 因为深度学习用的是pytorch ...

最新文章

  1. 基于 U-Net 的医学影像分割算法综述
  2. 挑战者联盟!谁会成为最赚钱的人工智能公司
  3. linux动态二进制翻译,仿真:解释和二进制翻译
  4. DL之CNN:卷积神经网络算法应用之卷积神经网络实践技巧(DA/DP/WI/BN/H/O/R)、优化技术经验之详细攻略
  5. Qt creator 编译错误 :cannot find file .pro qt
  6. IDEA Servlet页面报错
  7. ps aux 查看进程
  8. SaaS市场没有免费午餐!未来只有两种企业可生存
  9. 第四季-专题19-I2C驱动程序设计
  10. DEPHI XE5 XE6 ANDROID IOS开发的几点体会
  11. 无人机倾斜摄影重建实景三维模型
  12. 搜索推荐评价指标Precision@k、Recall@k、F1@k、NDCG@k
  13. 树莓派 Pico ADC温度测量
  14. 使用微信开发者平台调样式
  15. spring aop统一进行日常及异常的处理
  16. mysql中declare语句用法详解
  17. IEEE754的理解归纳
  18. ​儿童手表APP开发让用户更好地体验到智能设备的便捷性​
  19. 微信QQ打开网页时提示用浏览器打开
  20. 2021成都好久查询高考成绩,2021年成都各高中高考成绩排名及放榜最新消息

热门文章

  1. javac提示信息变成英文
  2. Ubuntu系统管理 —— 使用SSH及SCP实现远程登陆与数据传输
  3. C语言链表的删除代码实现
  4. c 语言多个if并联使用,if的嵌套和多个并列if的效率有关问题
  5. iphone4s更换电池_更换iPhone电池有多困难?
  6. 如何解决“无法连接到文件共享,因为它不安全。 此共享需要旧的 SMB1 协议”问题
  7. 超宽带uwb精准定位,厘米级室内定位技术,实时高精度方案应用
  8. 开氏温度与摄氏度换算_【知识分享】柴油密度与温度的关系
  9. 全同态加密研究资源汇总
  10. 微信小程序时间选择器