1,先去官网下载phpexcel
2,两个文件分别放到以下目录下面
3,创建导出excel方法
/** * 導出excel * $tableheader:表頭 * $tableheader = array('订单编号', '下单商品', '商品名', '客户', '总价', '下单时间', '支付类型', '订单跟踪'); * $data:表格內容 * array('小李', '女', '21', 'CS12', $pic), * $num:圖片位於倒數第幾個 * 表格寬度 * $table_width * 表格高度 * $table_height */ public function orderExcelOut($tableheader,$data,$num="7",$name="潮搜time()",$table_width=30,$table_height=90){ vendor("PHPExcel"); /*实例化excel类*/ $excel = new \PHPExcel(); /*实例化excel图片处理类*/ $objDrawing = new \PHPExcel_Worksheet_Drawing(); /*设置文本对齐方式*/ $excel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $excel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objActSheet = $excel->getActiveSheet(); $letter = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N'); /*设置表头数据*/ //$tableheader = array('姓名', '性别', '年龄', '班级', '头像'); /*填充表格表头*/ for($i = 0;$i < count($tableheader);$i++) { $excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]"); } for ($i = 0;$i < count($data);$i++) { $j = $i + 2; /*设置表格宽度*/ $objActSheet->getColumnDimension("$letter[$i]")->setWidth($table_width); /*设置表格高度*/ $excel->getActiveSheet()->getRowDimension($j)->setRowHeight($table_height); /*向每行单元格插入数据*/ for ($row = 0;$row < count($data[$i]);$row++) { if ($row == (count($data[$i]) -$num )) { /*实例化插入图片类*/ $objDrawing = new \PHPExcel_Worksheet_Drawing(); /*设置图片路径 切记:只能是本地图片*/ $objDrawing->setPath($data[$i][$row]); /*设置图片高度*/ $objDrawing->setHeight(100); /*设置图片要插入的单元格*/ $objDrawing->setCoordinates("$letter[$row]$j"); /*设置图片所在单元格的格式*/ //$objDrawing->setOffsetX(80); //$objDrawing->setRotation(20); $objDrawing->getShadow()->setVisible(true); $objDrawing->getShadow()->setDirection(50); $objDrawing->setWorksheet($excel->getActiveSheet()); continue; } $excel->getActiveSheet()->setCellValue("$letter[$row]$j",$data[$i][$row]); } } /*实例化excel输入类并完成输出excel文件*/ $name = $name.".xls"; $write = new \PHPExcel_Writer_Excel5($excel); 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=$name"); header("Content-Transfer-Encoding:binary"); $write->save('php://output'); }
4,使用
function output() { $list_data = $this->_get_model_list ( $this->model ); $map ['is_show'] = 1; $list = M ( 'shop_goods_category' )->where ( $map )->field ( 'id,title' )->select (); $cate [0] = ''; foreach ( $list as $vo ) { $cate [$vo ['id']] = $vo ['title']; } foreach ( $list_data ['list_data'] as $key => &$vo ) { $vo ['category_id'] = intval ( $vo ['category_id'] ); $vo ['category_id'] = $cate [$vo ['category_id']]; $str = "/Uploads"; $vo ['pic'] = SITE_PATH.strstr(get_cover_url($vo['cover']),$str); //整合数据 $is_shop = array("1"=>"是","0"=>"不是"); $data[$key][] = $vo['id']; $data[$key][] = $vo['category_id']; $data[$key][] = $vo['pic']; $data[$key][] = $vo['title']; $data[$key][] = $vo['price']; $data[$key][] = $vo['inventory']; $data[$key][] = $vo['sale_count']; $data[$key][] = $is_shop[$vo['is_show']]; } $tableheader = array('商品id', '商品分类', '封面图', '商品名称', '价格', '库存量', '销售量', '是否上架'); $num=6; $name=time(); $this->orderExcelOut($tableheader, $data,$num,$name); }
大功告成!