美文网首页
CI框架--Excel导入(引入phpExcel这个类)

CI框架--Excel导入(引入phpExcel这个类)

作者: 风度翩翩的程序猿 | 来源:发表于2020-12-23 16:37 被阅读0次

下载PHPExcel:http://phpexcel.codeplex.com

  1. 解压压缩包里的Classes文件夹中的内容到application\libraries\目录下,目录结构如下:

-- application\libraries\PHPExcel.php

-- application\libraries\PHPExcel (文件夹)

2.修改application\libraries\PHPExcel\IOFactory.php 文件

-- 将其类名从PHPExcel_IOFactory改为IOFactory,遵从CI类命名规则。

-- 将其构造函数改为public

上代码

//从excel导入到数据表
    public function excel_put(){
        //先做一个文件上传,保存文件
        $path=$_FILES['file'];
        $filePath = "uploads/".$path["name"];
        move_uploaded_file($path["tmp_name"],$filePath);
        //$data=array('B'=>'name','C'=>'pwd','D'=>'money1','E'=>'salt');
        $data=array('B'=>'name','C'=>'pid');
        $tablename='city2';//表名字
        $this->excel_fileput($filePath,$data,$tablename);
    }
    private function excel_fileput($filePath,$data,$tablename){
        $this->load->library("phpexcel");//ci框架中引入excel类
        $PHPExcel = new PHPExcel();
        $PHPReader = new PHPExcel_Reader_Excel2007();
        if(!$PHPReader->canRead($filePath)){
            $PHPReader = new PHPExcel_Reader_Excel5();
            if(!$PHPReader->canRead($filePath)){
                echo 'no Excel';
                return ;
            }
        }
        // 加载excel文件
        $PHPExcel = $PHPReader->load($filePath);

        // 读取excel文件中的第一个工作表
        $currentSheet = $PHPExcel->getSheet(0);
        // 取得最大的列号
        $allColumn = $currentSheet->getHighestColumn();
        // 取得一共有多少行
        $allRow = $currentSheet->getHighestRow();

        // 从第二行开始输出,因为excel表中第一行为列名
        for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
            /**从第A列开始输出*/

            for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
                $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();
       
                if($currentColumn == 'A')
                {
       
                }else if($currentColumn <= $allColumn){
                    $data1[$currentColumn]=$val;
                }
            }
            foreach($data as $key=>$val){
                $data2[$val]=$data1[$key];
            }
            $this->db->insert($tablename,$data2);
        
        }
        echo "导入成功";
    }

相关文章

网友评论

      本文标题:CI框架--Excel导入(引入phpExcel这个类)

      本文链接:https://www.haomeiwen.com/subject/azcunktx.html