thinkphp5 使用PHPExcel导入导出简单案例

2018-12-25   阅读:3763   类型:后端   分类:TP5    标签: TP5

thinkphp5 使用PHPExcel导入简单案例:

扩展包链接:https://pan.baidu.com/s/19SpsMJ4WIjm7jUqdFaMVRw

提取码:w0t0

导入功能:

 public function ten_daoru(){
    //引入PHPExcel类
    vendor('PHPExcel');
    vendor("PHPExcel/PHPExcel.IOFactory");  //导入phpexcel插件
    vendor('PHPExcel/PHPExcel.Reader.Excel5');
  
    //文件路径
    $filePath =ROOT_PATH.'/public/static/uploadExcel/exam.xlsx';
    //实例化PHPExcel类
    $PHPExcel = new \PHPExcel();
    //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取
    $PHPReader = new \PHPExcel_Reader_Excel2007();
    if (!$PHPReader->canRead($filePath)) {
      $PHPReader = new \PHPExcel_Reader_Excel5();
      if (!$PHPReader->canRead($filePath)) {
        echo 'no Excel';
        return;
      }
    }
    //读取Excel文件
    $PHPExcel = $PHPReader->load($filePath);
    //读取excel文件中的第一个工作表
    $sheet = $PHPExcel->getSheet(0);
    //取得最大的列号
    $allColumn = $sheet->getHighestColumn();
    //取得最大的行号
    $allRow = $sheet->getHighestRow();
    //从第二行开始插入,第一行是列名
    for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) {
      //获取B列的值
      $a = $PHPExcel->getActiveSheet()->getCell("A" . $currentRow)->getValue();
      //获取C列的值
      $b = $PHPExcel->getActiveSheet()->getCell("B" . $currentRow)->getValue();
  
      $result=db('tenth')->insert(array('username'=>$a,'tel'=>$b));
    }
       if($result){
          return $this->success('导入成功!','admin/Tenth/ten');
        }else{
          return $this->success('导入失败!');
        }
   }

导出功能

  // excel导出
     public function excel_daochu(){
       vendor("PHPExcel.PHPExcel");  //导入phpexcel插件
       $objPHPExcel = new \PHPExcel();
       $objPHPExcel->createSheet(); //创建新的内置表
       $objPHPExcel->setActiveSheetIndex(); //吧新创建的sheet设定为当前活动sheet
       $objSheet=$objPHPExcel->getActiveSheet(); //获取当前活动sheet
       // $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//导出居中显示
       // $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_LEFT);//导出居中显示
       $data=\think\Db::name('prg')->select();

       $objSheet->setTitle("财务数据表");//给当前活动sheet设置名称
       $objSheet->setCellValue('A1','姓名')->setCellValue('B1','所属机构')->setCellValue('C1','职称')->setCellValue('D1','联系电话')->setCellValue('E1','提交时间')->setCellValue('F1','商户订单号')->setCellValue('G1','金额')->setCellValue('H1','签到状态')->setCellValue('I1','支付状态')->setCellValue('J1','晚宴')->setCellValue('K1','座位号');
       $j=2;
        foreach($data as $key=>$val){
            $objSheet->setCellValue('A'.$j,$val['username'])->setCellValue('B'.$j,$val['hospital'])->setCellValue('C'.$j,$val['hos_title'])->setCellValue('D'.$j,$val['tel'])->setCellValue('E'.$j,date("Y/m/d H:i:s",$val['addtime']))->setCellValue('F'.$j,$val['z_num'])->setCellValue('G'.$j,$val['mony'])->setCellValue('H'.$j,$val['descs'])->setCellValue('I'.$j,$val['paym'])->setCellValue('J'.$j,$val['dinner'])->setCellValue('K'.$j,$val['seat_num']);
            $j++;
        }
       $objWriter=\PHPExcel_IOFactory::createWriter($objPHPExcel,"Excel5");
       //$objWriter->save($dir."/export_1.xls");
       $time=date("Ymd");
       $this->brower_export('Excel5',$time.'_财务数据表.xls');//输出到浏览器
       $objWriter->save("php://output");
    }
    public function brower_export($type,$filename){
            if($type=='Excel5'){
                header('Content-Type: application/vnd.ms-excel'); //告诉浏览器输入excel2003文件
            }else{
                header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//告诉浏览器输入excel2007文件
            }
            
            header('Content-Disposition: attachment;filename="'.$filename.'"');//告诉浏览器输出文件的名称
            header('Cache-Control: max-age=0');//禁止缓存
    }


腾讯云11.11上云拼团Go,2核2G3M云服务器 28元/年

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://tpxhm.com/adetail/58.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×