zoukankan      html  css  js  c++  java
  • Yii2 框架 导出excel表格类

    使用这个类前,需安装PHPExcel库,安装教程可参考:https://www.cnblogs.com/JahanGu/p/8039021.html

    导出excel类:

    <?php
    
    /*
        * 导出表格
    */
    namespace commonutils;
    
    class OutputExecl
    {
    
        /*
            * 导出execl
            * headerData  表头信息  形如 array('A1'=>'编号','B1'=>'会员ID','C1'=>'电话');
            * data        导入数据   这个要与表头顺序一致
            * 返回一个execl下载地址
        */    
    
        public function output($headData,$data,$filename='')
        {
            $objPHPExcel = new PHPExcel();
    
            //设置表头的信息
            $headObj = $objPHPExcel->setActiveSheetIndex(0);            
            foreach($headData as $key=>$val)
            {
                $headObj->setCellValue($key,$val);
            }
            $i=2;
    
            //写入数据
            $contentObj = $objPHPExcel->getActiveSheet();
            $listks    = 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');
            foreach ($data as $key => $value) 
            {
                $l = 0;
                foreach($value as $val)
                {
                    //给表的单元格设置数据
                    $contentObj->setCellValue($listks[$l].$i,$val);
                    $l++;
                }
                $i++;
            }        
    
            //设置sheet页标题
            $objPHPExcel->getActiveSheet()->setTitle('表格导出数据');
    
            $objPHPExcel->setActiveSheetIndex(0);
    
            if(!$filename)
                $filename = time().rand(1000,9999).'.xls';
    
    
            $dir = '/data/execl/';
            $basePath = $_SERVER['DOCUMENT_ROOT'];
            if(!is_dir($basePath.$dir)) mkdir($basePath.$dir,0777,true);
    
            $dirFile = $dir.$filename;
            //1,直接生成一个文件
            $objWriter =PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
            $objWriter->save( $basePath.$dirFile);
            $host = Yii::$app->request->hostInfo;
              return $host.$dirFile;       
        }
    
    }

    调用:

            //组织导出数据
            $exportData = array();
            foreach($list as $val)
            {
    
                $temp = [];
                $temp[] = $val['member_id'];
                $temp[] = $val['member_name'];
                $temp[] = $val['member_mobile'];
                $temp[] = $val['state']?'正常':'冻结';
                $temp[] = date("Y-m-d H:i:s",$val['create_time']);
                $exportData[] = $temp;
            }
            $headData = array('A1'=>'会员ID','B1'=>'会员姓名','C1'=>'会员电话','D1'=>'会员状态','E1'=>'注册时间');
            $fileName = 'member-'.date('Y-m-d').'.xls';
            $execlObj = new OutputExecl();
            $res = $execlObj->output($headData,$exportData,$fileName);
            if($res)
                $this->out('下载地址',array('url'=>$res));
            else
                $this->error('导出失败');
  • 相关阅读:
    链接的热键属性accesskey
    链接目标属性
    HTML添加多媒体或音乐
    HTML中的图像
    DreamweaverCS6
    HTML其他基本格式说明
    HTML页面主体常用设置
    网页设计与开发的过程
    文字排版
    选择器
  • 原文地址:https://www.cnblogs.com/jackzhuo/p/12980229.html
Copyright © 2011-2022 走看看