TP5.1excel导入数据库的代码?php excel如何导入数据库?

PHP技术
414
0
0
2022-04-11

原创文章引自(https://www.ympfb.com/show-29-154-1.html)

在用之前必须

use think\PHPExcel;

并且这个是第三方类库,这个类库是直接用命令能后下载的

composer 命令:
composer require phpoffice/phpexcel

public function save(){
        //前台的form表单大家都会吧,我就不写了
        //设置文件上传的最大限制
        ini_set('memory_limit','1024M');
        //加载第三方类文件
        require_once "../extend/PHPExcel/PHPExcel.php";
        //防止乱码
        header("Content-type:text/html;charset=utf-8");
        //实例化主文件
        //接收前台传过来的execl文件
        $file = $_FILES['file'];
        //截取文件的后缀名,转化成小写
        $extension = strtolower(pathinfo($file['name'],PATHINFO_EXTENSION));
        if($extension == "xlsx"){
            //2007(相当于是打开接收的这个excel)
            $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
        }else{
            //2003(相当于是打开接收的这个excel)
            $objReader = \PHPExcel_IOFactory::createReader('Excel5');
        }


        $objContent = $objReader -> load($file['tmp_name']);


        if ($objContent){
            $sheetContent = $objContent -> getSheet(0) -> toArray();
            //删除第一行标题
   //dump($sheetContent);die;
   //其实到这里就结束了,就已经得到excel表格的所有数据了,下面就是如何插入数据库的问题了 ,下面我的方法大家可以参考


   $len = count($sheetContent);
   //var_dump($len);exit;
   if($len == 1){
    echo "<script>alert('请不要拿空表格来骗我');window.history.back();</script>";
    exit();
   }


   for($i = 1;$i<$len; $i++){
    $data = [
     'id' => '',
     'phone' => $sheetContent[$i][0],
     'company_name' => $sheetContent[$i][1],
     'add_id' => $sheetContent[$i][2],
     'industry_id' => $sheetContent[$i][3],
     'data_name' => $sheetContent[$i][4],
     'data_address' => $sheetContent[$i][5],
     'data_class' => $sheetContent[$i][6],
     'data_set_up_date' => $sheetContent[$i][6],
     'create_time' => date('Y-m-d')
    ];
    //dump($data);die;
    $re = Db::name('data_decoration_company')->insert($data);
   }
            //var_dump($res);die;
if($re){
    echo "<script>alert('导入成功');window.history.back();      </script>";
    exit();
    $this->redirect('/')->remember();
}else{
    echo "<script>alert('导入失败了,慢点慢点@!@本电脑的脑子已经跟不上你的节奏了');window.history.back();</script>";
    exit();
    $this->redirect('/')->remember();
    }
}else{
    $this->error('请导入表格 !');
}
    }