tp中,用户实现将Excel表格内容添加到数据库中

1.需要一个上传的一个方法

//上传Excel文件
    public function upload() {
        //引入ThinkPHP上传文件类
        include 'FileUpload.class.php';
        //实例化上传类
        $upload = new \FileUpload();
        //设置附件上传文件大小200Kib
        $upload->mixSize = 2000000;
        //设置附件上传类型
        $upload->allowExts = array('xls', 'xlsx', 'csv');
        //设置附件上传目录在/Home/temp下
        $upload->savePath =  './uploads/';// 设置附件上传目录
        //保持上传文件名不变
        $upload->saveRule = '';
        //存在同名文件是否是覆盖
        $upload->uploadReplace = true;
        if (!$upload->upload()) {  //如果上传失败,提示错误信息
            $this->error($upload->getErrorMsg());
        } else {  //上传成功
            //获取上传文件信息
            $info = $upload->getUploadFileInfo();
            //获取上传保存文件名
            $fileName = $info[0]['savename'];
            //重定向,把$fileName文件名传给importExcel()方法
            $this->redirect('san/importExcel', array('fileName' => $fileName), 1, '上传成功!');
        }
    }
2.导入到数据库的方法

 //导入Excel文件
    public function importExcel() {

        header("content-type:text/html;charset=utf-8");
        //引入PHPExcel类
        date_default_timezone_set("Asia/Shanghai");
        import("Org.Util.PHPExcel");
        import("Org.Util.PHPExcel.IOFactory");
        import("Org.Util.PHPExcel.Reader.Excel5");
        import("Org.Util.PHPExcel.Reader.Excel2007");
        //redirect传来的文件名
        $fileName = $_GET['fileName'];

        //文件路径
        $filePath = './uploads/' . $fileName;
        //实例化PHPExcel类
        $PHPExcel = new \PHPExcel();
        //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取
        $PHPReader = new \PHPExcel_Reader_Excel2007();
        if (!$PHPReader->canRead($filePath)) {
            $PHPReader = new \PHPExcel_Reader_Excel5();
            if (!$PHPReader->canRead($filePath)) {
                echo 'no Excel';
                return;
            }
        }
//        $creat_time = date('Y-m-d H:i:s');
        //读取Excel文件
        $PHPExcel = $PHPReader->load($filePath);
        //读取excel文件中的第一个工作表
        $sheet = $PHPExcel->getSheet(0);
        //取得最大的列号
        $allColumn = $sheet->getHighestColumn();
        //取得最大的行号
        $allRow = $sheet->getHighestRow();
        //从第二行开始插入,第一行是列名
        for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) {
            //获取B列的值
            $san_qrcode = $PHPExcel->getActiveSheet()->getCell("B" . $currentRow)->getValue();
            //获取C列的值
            $site_name = $PHPExcel->getActiveSheet()->getCell("C" . $currentRow)->getValue();
            //获取D列的值
            $status = $PHPExcel->getActiveSheet()->getCell("D" . $currentRow)->getValue();
            
            $use_status = $PHPExcel->getActiveSheet()->getCell("E" . $currentRow)->getValue();
            //获取C列的值            
            $m = M('ybs_san');
            $num = $m->add(array('san_qrcode' => $san_qrcode, 'site_name' => $site_name, 'status' => $status,'use_status' => $use_status));
        }
        if ($num > 0) {
             $this->success("雨伞添加成功", U('san/index'));
        } else {
            $this->error("雨伞添加失败");
        }
    }
注意:你需要在tp的官网下载一个UploadFile.class.php 文件


猜你喜欢

转载自blog.csdn.net/admin1008611/article/details/75233753