thinkPHP5.0Excel表格导出

 一直习惯用thinkPHP框架,正在对这个框架进行深入研究,今天研究了Excel表格导入,在网上找了很多人的博客,代码,有的会报错,下载Excel类库时,大多都是官网下载,手动添加到thinkPHP中,自己找了一个通过命令下载的扩展方法。将一些改动,结合。最终完美的将信息导出到了表格中。。。 

通过composer下载Excel表格的thinkPHP扩展
composer require phpoffice/phpexcel
下载到了vender/phpoffice/phpexcel
 1 public function export(){
 2          //查询数据库信息
 3         $xlsData = Db('user')->select();
 4         Vendor('PHPExcel.PHPExcel');//调用类库,路径是基于vendor文件夹的
 5         Vendor('PHPExcel.PHPExcel.Worksheet.Drawing');
 6         Vendor('PHPExcel.PHPExcel.Writer.Excel2007');
 7         //实例化
 8         $objExcel = new \PHPExcel();
 9         //设置文档属性
10         $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
11          //设置内容
12         $objActSheet = $objExcel->getActiveSheet();
13         $key = ord("A");
14         $letter =explode(',',"A,B,C,D,E,F");
15         $arrHeader = array('姓名','公司','职位','邮箱','状态');
16         //填充表头信息
17         $lenth =  count($arrHeader);
18         for($i = 0;$i < $lenth;$i++) {
19             $objActSheet->setCellValue("$letter[$i]1","$arrHeader[$i]");
20         };
21         //填充表格信息
22         foreach($xlsData as $k=>$v){
23             $k +=2;
24             $objActSheet->setCellValue('A'.$k,$v['u_name']);
25             $objActSheet->setCellValue('B'.$k, $v['u_tel']);
26             // // 图片生成
27             $objDrawing[$k] = new \PHPExcel_Worksheet_Drawing();
28             $objDrawing[$k]->setPath(ROOT_PATH.'public/index/images/pic10.jpg');
29             // 设置宽度高度
30             $objDrawing[$k]->setHeight(40);//照片高度
31             $objDrawing[$k]->setWidth(40); //照片宽度
32             /*设置图片要插入的单元格*/
33             $objDrawing[$k]->setCoordinates('C'.$k);
34             // 图片偏移距离
35             $objDrawing[$k]->setOffsetX(30);
36             $objDrawing[$k]->setOffsetY(12);
37             $objDrawing[$k]->setWorksheet($objExcel->getActiveSheet());
38             //表格内容
39             $objActSheet->setCellValue('C'.$k, $v['u_id']);
40             $objActSheet->setCellValue('D'.$k, $v['u_pwd']);
41             // $objActSheet->setCellValue('E'.$k, $v['statuid'] == 1?'正常':'失效');
42  
43  
44             // 表格高度
45             $objActSheet->getRowDimension($k)->setRowHeight(20);
46         }
47  
48         $width = array(20,20,15,10,10,30,10,15);
49         //设置表格的宽度
50         $objActSheet->getColumnDimension('A')->setWidth($width[5]);
51         $objActSheet->getColumnDimension('B')->setWidth($width[1]);
52         $objActSheet->getColumnDimension('C')->setWidth($width[0]);
53         $objActSheet->getColumnDimension('D')->setWidth($width[5]);
54         $objActSheet->getColumnDimension('E')->setWidth($width[5]);
55  
56  
57         $outfile = "人员表.xls";
58         ob_end_clean();
59         header("Content-Type: application/force-download");
60         header("Content-Type: application/octet-stream");
61         header("Content-Type: application/download");
62         header('Content-Disposition:inline;filename="'.$outfile.'"');
63         header("Content-Transfer-Encoding: binary");
64         header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
65         header("Pragma: no-cache");
66         $objWriter->save('php://output');
67     }

最后效果,就完成了

猜你喜欢

转载自www.cnblogs.com/ffanAssun/p/9234365.html