TP5整合的导出Excel中没有图片和包含图片两种方法


之前做了个项目需要导出Excel文件 ,我在网上查了许多资料,最后终于搞定了 ,现在把代码贴到下面

先导入库文件:将文件phpoffice放在根目录的vendor下。获取文件点击:链接:https://pan.baidu.com/s/1G426c2sQKiJ453HZSHpeIQ 提取码:oj6f

接下来先说下没有图片的方法:

    1. 先在application下面的command.php中添加如下的代码:    

 1 function excelExport($fileName = '', $headArr = [], $data = []) {
 2 
 3     $fileName .= "_" . date("Y_m_d", time()) . "_".time().".xls";
 4 
 5     $objPHPExcel = new \PHPExcel();
 6 
 7     $objPHPExcel->getProperties();
 8 
 9     $key = ord("A"); // 设置表头
10 
11     foreach ($headArr as $v) {
12 
13         $colum = chr($key);
14 
15         $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
16 
17         $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
18 
19         $key += 1;
20 
21     }
22 
23     $column = 2;
24 
25     $objActSheet = $objPHPExcel->getActiveSheet();
26 
27     foreach ($data as $key => $rows) { // 行写入
28 
29         $span = ord("A");
30 
31         foreach ($rows as $keyName => $value) { // 列写入
32 
33             $objActSheet->setCellValue(chr($span) . $column, $value);
34 
35             $span++;
36 
37         }
38 
39         $column++;
40 
41     }
42 
43     $fileName = iconv("utf-8", "gb2312", $fileName); // 重命名表
44 
45     $objPHPExcel->setActiveSheetIndex(0); // 设置活动单指数到第一个表,所以Excel打开这是第一个表
46 
47     header('Content-Type: application/vnd.ms-excel');
48 
49     header("Content-Disposition: attachment;filename='$fileName'");
50 
51     header('Cache-Control: max-age=0');
52 
53     $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
54 
55     $objWriter->save('php://output'); // 文件通过浏览器下载
56 
57     exit();
58 }

  然后在你的控制器中添加如下的代码:

  

 1     public function excel()
 2     {
 3         
 4         
 5             $name='定制订单列表';
 6             $header=['序号','客户','日期','品类','价格','订单属性','客户来源','新老客户','顾问','所属店铺'];
 7                 /*需要哪张表的数据就查询哪张表的数据*/
 8             $list = DB::name('order')select();
 9             $str = array();
10             foreach ($list as $k => $v) {
11                 /*对应的数据库信息*/
12                 $str[] = ['字段1,'字段2','字段4','字段5','字段6','字段7','字段8','字段9','字段10','字段11'];
13             }
14             $data=$str;
15             excelExport($name,$header,$data);
16     }

   然后调用方法execl就可以导出你想要的数据了


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM