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);
}大功告成!