ThinkPHP中PHPExcel的使用(包含日期格式)

最近做一个项目,需要做excel导入导出功能,上网搜了好久,经过测试,以下代码可以实现,备份一份下来。

原文链接是:https://www.cnblogs.com/php0916/p/6672538.html

1.实现excel导入

/**实现导入excel

    **/

  function impUser($tid){

        if (!empty($_FILES)) {


            $config=array(

                'exts'=>array('xlsx','xls'),

                'rootPath'=>"./Public/",

                'savePath'=>'Excel/',

                'autoSub'    =>    true,

                'subName'    =>    array('date','Ymd'),

            );

            $upload = new \Think\Upload($config);

            if (!$info=$upload->upload()) {

                $this->error($upload->getError());

            }

              vendor("PHPExcel.Classes.PHPExcel");

            $file_name=$upload->rootPath.$info['import']['savepath'].$info['import']['savename'];

            //var_dump($file_name);exit;

            $objReader = \PHPExcel_IOFactory::createReader('Excel5');

            $objPHPExcel = $objReader->load($file_name,$encode='utf-8');

            $sheet = $objPHPExcel->getSheet(0);

            $highestRow = $sheet->getHighestRow(); // 取得总行数

            $highestColumn = $sheet->getHighestColumn(); // 取得总列数

            for($i=3;$i<=$highestRow;$i++)

            {

                $data['tid']= $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();

                $data['content']=$objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();

                $data['aa']= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();

                $data['ab'] = $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();

                $data['ac'] = $objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue();

                $data['ad']= $objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue();

                $data['answer']= $objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue();

                $data['addtime']= gmdate("Y-m-d H:i:s", \PHPExcel_Shared_Date::ExcelToPHP($objPHPExcel->getActiveSheet()->getCell("I".$i)->getValue())); 

                $data['addtime']=strtotime( $data['addtime']);

                $data['quescore']= $objPHPExcel->getActiveSheet()->getCell("j".$i)->getValue();


                M('Quest')->add($data);


            }

            $this->success('导入成功!');

        }else

        {

            $this->error("请选择上传的文件");

        }



ThinkPHP中PHPExcel的使用(包含日期格式)_第1张图片
代码截图


ThinkPHP中PHPExcel的使用(包含日期格式)_第2张图片
上传文件的格式

文件导出

//导出excel

    function expUser($tid){

        $xlsName = M('Test') -> where(array('id'=>$tid))->getField('title');

        //$xlsName  = "我是导出的excel";

        $xlsCell  = array(

        array('id','题号id'),

        array('tid','题试卷id'),

        array('content','问题名称'),

        array('aa','选项A'),

        array('ab','选项B'),

        array('ac','选项C'),

        array('ad','选项D'),

        array('answer','选项'),

        array('addtime','时间'),

        array('quescore','分数')


        );

        $xlsModel = M('Quest');

        $xlsData  = $xlsModel-> where(array('tid'=>$tid))->Field('id,tid,content,aa,ab,ac,ad,answer,addtime,quescore')->select();


        $this->exportExcel($xlsName,$xlsCell,$xlsData);

    }


ThinkPHP中PHPExcel的使用(包含日期格式)_第3张图片
导出代码截图

注意引入的phpexcel的路径

把phpexcel的包放入 ThinkPHP/Library/Vendor 下面

$objReader = \PHPExcel_IOFactory::createReader//这里要注意‘\’ 要有这个

你可能感兴趣的:(ThinkPHP中PHPExcel的使用(包含日期格式))