ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Thinkphp5 做PHPexcel 图片导出

2021-02-27 09:01:50  阅读:379  来源: 互联网

标签:导出 Thinkphp5 list2 header key PHPExcel PHPexcel setWidth getActiveSheet


控制器层:


public function index(){

    if(isset($param['export']) && $param['export'] == 1 ){  // EXCEL 导出

             $list2 = $GoodsProductModel->getExcelList($condition);

             foreach($list2 as $key => $val){

                 $list2[$key]['platform'] = is_platform($list2[$key]['platform']);
                 $list2[$key]['user_commission'] = is_commission($list2[$key]['commission_type'],$list2[$key]['commission'],$list2[$key]['post_price']);

             }

             $header = [
                 'A' => ['post_title', '商品名称'],
                 'B' => ['type_name', '商品分类'],
                 'C' => ['post_price', '商品价格(元)'],
                 'D' => ['user_commission', '商品佣金(元/件)'],
                 'E' => ['platform', '可上平台'],
                 'F' => ['create_time', '上架时间'],
                 'G' => ['thumb', '缩略图']
             ];

             $fileName = '商品明细'.date('Y-m-d').rand(0,100);
             $this->excel($header, $list2, $fileName);       // Excel 导出,在公共方法中
         }

}

// Excel 导出
function excel($header,$list,$fileName){

        // 引入 Excel 表格插件
        import('PHPExcel.Classes.PHPExcel');
        import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
        $PHPExcel = new \PHPExcel();
        $PHPSheet = $PHPExcel->getActiveSheet();

        // 设置表格宽度
        $PHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(35);
        $PHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
        $PHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
        $PHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
        $PHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);
        $PHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(25);
        $PHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);

        // 设置表格高度
        $PHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);     //第一行行高

        // 第一行加粗
        $PHPExcel->getActiveSheet()->getStyle('A1:G1')->getFont()->setBold(true);

        // 设置字体
        $PHPExcel->getDefaultStyle()->getFont()->setName('微软雅黑');             //字体

        foreach ($list as $k => $v) {
            foreach ($header as $key => $value) {           // $key 最大值为6
                if ($k == 0) {
                    $PHPSheet->setCellValue($key.'1', end($value));
                }
                $objDrawing = new \PHPExcel_Worksheet_Drawing();

                $i = $k + 2;
                $PHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(45);
                if($key == 'G'){
                    $objDrawing->setPath('./public/uploads/image/' . $v['thumb']);//这里拼接 . 是因为要在根目录下获取
                    // 设置宽度高度
                    $objDrawing->setHeight(50); //照片高度
                    $objDrawing->setWidth(50);  //照片宽度
                    /* 设置图片要插入的单元格 */
                    $objDrawing->setCoordinates($key.$i, $v[reset($value)]);
                    // 图片偏移距离
                    $objDrawing->setOffsetX(5);
                    $objDrawing->setOffsetY(5);
                    $objDrawing->setWorksheet($PHPExcel->getActiveSheet());
                }else{
                    $PHPSheet->setCellValue($key.$i, $v[reset($value)]);
                }

            }
        }

        $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,"Excel2007");
        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='.$fileName.'.xlsx');
        header("Content-Transfer-Encoding:binary");
        $PHPWriter->save("php://output");

    }

 

标签:导出,Thinkphp5,list2,header,key,PHPExcel,PHPexcel,setWidth,getActiveSheet
来源: https://blog.csdn.net/zhizhuo0915/article/details/114159788

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有