tp3.2.3 PHPExcel 导入数据库

来源:互联网 发布:多核优化 编辑:程序博客网 时间:2024/06/06 02:07

最近开发的项目客户有个Excel导入的需求 将Excel中的数据导入数据库

这也是个比较老套的功能了  不过自己之前一直没有做过  所以揣摩了半天时间  现在在这分享下

首先就是下载PHPExcel类,将下载好的类放置在项目的Org/Util目录下 ,当然这个位置不是死的 ,也可以放在Vendor下  只要我们可以引入就可以




接下来是代码部分  HTML页面就一个input  file框 记得加上enctype属性  上传后在PHP页面的处理复制在下方

ublic  function uploadForm(){            if (!empty($_FILES)){            $upload = new \Think\Upload();                      // 实例化上传类            $upload->maxSize   =     10485760 ;                 // 设置附件上传大小            $upload->exts      =     array('xls','xlsx');       // 设置附件上传类型            $upload->rootPath  = './Public/Excel/';             // 设置附件上传根目录            $upload->autoSub   = false;                         // 将自动生成以photo后面加时间的形式文件夹,关闭            // 上传文件            $info   =   $upload->upload();                                  // 上传文件            $exts   = $info['file']['ext'];                                 // 获取文件后缀            $filename = $upload->rootPath.$info['file']['savename'];        // 生成文件路径名            if(!$info) {                                                    // 上传错误提示错误信息                $this->error($upload->getError());             }else{                                                          // 上传成功                import("Org.Util.PHPExcel.PHPExcel");                       // 导入PHPExcel类库,因为PHPExcel没有用命名空间,只能import导入                $PHPExcel = new \PHPExcel();                                // 创建PHPExcel对象,注意,不能少了\                if ($exts == 'xls') {                                       // 如果excel文件后缀名为.xls,导入这个类                    import("Org.Util.PHPExcel.Reader.Excel5");                    $PHPReader = new \PHPExcel_Reader_Excel5();                } else                     if ($exts == 'xlsx') {                        import("Org.Util.PHPExcel.Reader.Excel2007");                        $PHPReader = new \PHPExcel_Reader_Excel2007();                    }                $PHPExcel=$PHPReader->load($filename);                $currentSheet = $PHPExcel->getSheet(0);                      // 获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推                $allColumn = $currentSheet->getHighestColumn();              // 获取总列数                $allRow = $currentSheet->getHighestRow();                    // 获取总行数               for ($i = 2; $i <= $allRow; $i++) {                    $data_p['lot'] =$PHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();                    $data_p['goods_name'] =$PHPExcel->getActiveSheet()->getCell("B" .$i)->getValue();                    $data_p['min_evaluation'] =$PHPExcel->getActiveSheet()->getCell("C" .$i)->getValue();                    $data_p['max_evaluation'] = $PHPExcel->getActiveSheet()->getCell("D". $i)->getValue();                    $data_p['starting_price'] =$PHPExcel->getActiveSheet()->getCell("E" .$i)->getValue();                    $data_p['goods_size'] =$PHPExcel->getActiveSheet()->getCell("F" . $i)->getValue();                    $data_p['goods_explain'] =$PHPExcel->getActiveSheet()->getCell("G" . $i)->getValue();                    $ex=M('auction_goods')->add($data_p);              }            if($ex){                                                        $this->success("导入成功");            }else{                $this->error("导入失败,原因可能是excel表中格式错误","5");// 提示错误               }            }        }else {          $this->display();         }        }

  关键还是文件引入

原创粉丝点击