PHP导出Excel,亲测有用
来源:互联网 发布:php延迟2秒执行 编辑:程序博客网 时间:2024/05/07 09:32
最近有个项目需要导出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-8 for ($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有趣新鲜知识科技
阅读全文
1 0
- PHP导出Excel,亲测有用
- php导出excel
- PHP 导出EXCEL报表
- php导出Excel方法
- PHP导出Excel文件
- php导出Excel
- PHP导出Excel
- php导出excel
- PHP导出excel乱码
- PHP导出导入Excel
- php导出excel
- PHP导出EXCEL
- php导出excel乱码
- php导出excel
- php导出excel
- php导出Excel
- php简单导出excel
- PHP导出Excel文件
- 《怪诞小镇》的怪诞之物
- sql 周转换为日期自定义函数
- Java中日期格式化成字符串和字符串解析成日期对象工具类
- 酷播云视频列表功能教程,简单实现视频列表连播
- 关于AI的三部电影
- PHP导出Excel,亲测有用
- 程序员面试IT公司的33个小贴士
- Qt 中的验证器类
- 中企动力与企业同行者的那些点滴
- System.arraycopy的使用
- Linux操作系统——vi使用方法详细介绍
- 写了这么久的Java,你的代码符合规范吗,测测便知
- java反射机制
- windows 下 Graphviz 安装及入门教程