博客列表 >thinkphp5使用execl 导出文件

thinkphp5使用execl 导出文件

姑苏城外
姑苏城外原创
2018年11月30日 14:39:491229浏览
//把PHPExcel放在vendor目录中
//没有的小伙伴在
//链接:https://pan.baidu.com/s/16NzArZFIXYExFqKnbiNo9Q 
//提取码:n43l
在控制器里
 //导出
                $path = dirname(__FILE__); //找到当前脚本所在路径
                vendor("PHPExcel.PHPExcel.PHPExcel");
                vendor("PHPExcel.PHPExcel.Writer.IWriter");
                vendor("PHPExcel.PHPExcel.Writer.Abstract");
                vendor("PHPExcel.PHPExcel.Writer.Excel5");
                vendor("PHPExcel.PHPExcel.Writer.Excel2007");
                vendor("PHPExcel.PHPExcel.IOFactory");
                $objPHPExcel = new \PHPExcel();
                $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
                $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
                //垂直居中
                // $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                // $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $letter=array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
               //表头
                $list_a=Array([0] => 项目名称,[1] => ***时间,[2] => 数量);
                //数据
                $lists=Array(
          [0] => Array
            (
                [0] => ee
                [1] => Array
                    (
                        [0] => 2018-09-04
                        [1] => 2018-09-29
                    )

                [2] => Array
                    (
                        [0] => 2000
                        [1] => 1500
                    )
        )
    [1] => Array
        (
            [0] => gg
            [1] => Array
                (
                    [0] => 2018-10-15
                    [1] => 2018-10-15
                )

            [2] => Array
                (
                    [0] => 5000
                    [1] => 5000
                )

        )

)

                $count = count($list_a);
                for ($i=1; $i <=$count; $i++) { 
                    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($letter[$i-1].'1',$list_a[$i-1]);
                }
                $counts = count($lists);
                foreach ($lists as $key_ks => $value_ks) {
                    foreach ($value_ks as $k_k => $v_v) {
                        
                            $vs=$key_ks+2;
                            $objPHPExcel->getActiveSheet()->getColumnDimension($letter[$k_k])->setWidth(30);
                            $as=count($v_v);
                            if($as=='1'){
                                if(isset($v_v[0])){
                                     $objPHPExcel->getActiveSheet()->setCellValue($letter[$k_k].$vs,$v_v[0]);
                                }else{
                                    $objPHPExcel->getActiveSheet()->setCellValue($letter[$k_k].$vs,$v_v);
                                }
                                
                            }else{
                                // foreach ($v_v as $k_v => $vv) {
                                  // $k_v=$k_v+2;
                                    // $abc = $vv."\r\n";
                                    // dump($v_v);
                                    $count  = count($v_v);
                                    for($i = 0; $i< $count; $i++){
                                        if($i+1 < $count){
                                            $abc = $v_v[$i]."\r\n".$v_v[$i+1]."\r\n";
                                        }
                                    }
                                    //dump($abc);
                                   $objPHPExcel->getActiveSheet()->setCellValue($letter[$k_k].$vs,$abc);
                                // }
                                // $aaa=$v_v;
                                // $objPHPExcel->getActiveSheet()->setCellValue($letter[$k_k].$vs,$aaa);
                               
                                
                                
                            }
                           
                    }
                   // die;

                
                }
                
               
                $objPHPExcel->getActiveSheet()->setTitle('productaccess');      //设置sheet的名称
                $objPHPExcel->setActiveSheetIndex(0);                   //设置sheet的起始位置
                $objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
                ob_clean();  
                $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');   //通过PHPExcel_IOFactory的写函数将上面数据写出来
                
                $PHPWriter = \PHPExcel_IOFactory::createWriter( $objPHPExcel,"Excel2007");
                    
                header('Content-Disposition: attachment;filename="设备列表.xlsx"');
                header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
                
                $PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议