欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【tp5.1】通过PHPExcel实现导入excel表格

程序员文章站 2023-03-22 21:53:52
1.上github下载PHPExcel,链接:https://github.com/PHPOffice/PHPExcel 2.下载解压后,将Classes改名为PHPExcel如图 3.将文件夹复制到项目内extend 4.html代码 5.php代码,tp5.1取消了vendor和import 如 ......

1.上github下载phpexcel,链接:https://github.com/phpoffice/phpexcel

2.下载解压后,将classes改名为phpexcel如图

【tp5.1】通过PHPExcel实现导入excel表格

 

 3.将文件夹复制到项目内extend

4.html代码

<form method="post" action="/admin/pos/posimport" class="form-signin" enctype="multipart/form-data" role="form"  id="form" >
      <input name="excel" type="file" class="form-control excel_path">
      <input type="submit" value="导入excel" class="btn btn-lg btn-primary btn-block">
</form>

5.php代码,tp5.1取消了vendor和import

        //上传excel文件
        $file = request()->file('excel');
        //将文件保存到public/uploads目录下面
        $info = $file->validate(['size'=>1048576,'ext'=>'xls,xlsx'])->move( './uploads');
        if($info){
            //获取上传到后台的文件名
            $filename = $info->getsavename();
            //获取文件路径
            $filepath = env::get('root_path').'public'.directory_separator.'uploads'.directory_separator.$filename;
            //获取文件后缀
            $suffix = $info->getextension();
            //判断哪种类型
            if($suffix=="xlsx"){
                $reader = \phpexcel_iofactory::createreader('excel2007');
            }else{
                $reader = phpexcel_iofactory::createreader('excel5');
            }
        }else{
            $this->error('文件过大或格式不正确导致上传失败-_-!');
        }
        //载入excel文件
        $excel = $reader->load("$filepath",$encode = 'utf-8');
        //读取第一张表
        $sheet = $excel->getsheet(0);
        //获取总行数
        $row_num = $sheet->gethighestrow();
        //获取总列数
        $col_num = $sheet->gethighestcolumn();
        $data = []; //数组形式获取表格数据
        for ($i = 2; $i <= $row_num; $i ++) {
            $data[$i]['code']  = $sheet->getcell("a".$i)->getvalue();
            $data[$i]['last_code']  = substr($sheet->getcell("a".$i)->getvalue(),-6);
            $time = date('y-m-d h:i',\phpexcel_shared_date::exceltophp($sheet->getcell("b".$i)->getvalue()));//将excel时间改成可读时间
            $data[$i]['time'] = strtotime($time);
            //将数据保存到数据库
        }
        $res = db::name('pos_code')->insertall($data);

如此便可以导入表格了,导出表格晚些更新