PHP导入Excel表格

这篇文章用的是ABCD列,对应着数据库的字段名,进行excel表格的导入,看看就懂了!

//导入客户经理
    public function do_addman()
    {
        //导入客户经理Excel表格
        if (I('types') == 'upload') {
            if (!empty($_FILES)) {
                $upload           = new \Think\Upload(); // 实例化上传类
                $upload->maxSize  = 3145728; // 设置附件上传大小
                $upload->exts     = array('xls', 'xlsx'); // 设置附件上传类型
                $upload->rootPath = './';
                $upload->savePath = 'Public/Uploads/bankmanager/'; // 设置附件上传目录
                $info             = $upload->upload();
                if (!$info) {
                    // 上传错误提示错误信息
                    $this->error($upload->getError());
                } else {
                    // 上传成功
                    import('Vendor.phpexcel.PHPExcel');

                    $file_name = $info['manager']['savepath'] . $info['manager']['savename'];
                    $PHPExcel  = new \PHPExcel();
                    $exts      = $info['manager']['ext'];
                    if ($exts == 'xls') {
                        // 如果excel文件后缀名为.xls,导入这个类
                        import("Vendor.phpexcel.PHPExcel.Reader.Excel5");
                        $PHPReader = new \PHPExcel_Reader_Excel5();
                    } else if ($exts == 'xlsx') {
                        import("Vendor.phpexcel.PHPExcel.Reader.Excel2007");
                        $PHPReader = new \PHPExcel_Reader_Excel2007();
                    }
                    $PHPExcel = $PHPReader->load($file_name); // 载入文件
                    $currentSheet = $PHPExcel->getSheet(0); // 获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
                    $allColumn = $currentSheet->getHighestColumn(); // 获取总列数
                    $allRow = $currentSheet->getHighestRow(); // 获取总行数
                    for ($currentRow = 0; $currentRow <= $allRow; $currentRow++) {
                        // 循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
                        for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {
                            // 从哪列开始,A表示第一列
                            $address = $currentColumn . $currentRow; // 数据坐标
                            $ExlData[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue(); // 读取到的数据,保存到数组$arr中
                        }
                    }
                    //调用公用方法的读数组并写入数据库操作
                    for ($i = 2, $j = 0; $i < sizeof($ExlData); $i++, $j++) {
                        $dataList[] = array(
                            'cat_id'      => I('id'),
                            'name'        => $ExlData[$i]['A'],
                            'mobile'      => $ExlData[$i]['B'],
                            'id_number'   => $ExlData[$i]['C'],
                            'bank_card'   => $ExlData[$i]['D'],
                            'add_time'    => time(),
                            
                        );
                    }
                    $managers = M('managers'); // 生成数据库对象
                    $result = $managers->addAll($dataList); // 批量写入数据库
                    if ($result) {
                        // 验证
                        $this->success("导入成功", U('Bank/bankindex'));die; // 跳转学生管理页面
                    } else {
                        $this->error("导入失败");die; // 提示错误
                    }
                }
            } else {
                $this->error('请上传excel文件');
            }
        }

    }
  

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值