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


    1.上github下载PHPExcel,链接:https://github.com/PHPOffice/PHPExcel

    2.下载解压后,将Classes改名为PHPExcel如图

     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);

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

  • 相关阅读:
    多线程《三》进程与线程的区别
    多线程《二》开启线程的两种方式
    多线程《一》线程理论
    多进程《七》生产者消费者模型
    多进程《六》队列
    互斥锁与join
    多进程《五》互斥锁
    多进程《四》守护进程
    再度认识未来——2.11
    开始——2.10
  • 原文地址:https://www.cnblogs.com/BearLee/p/10345764.html
Copyright © 2020-2023  润新知