php excel

原创
2016/06/09 00:24
阅读数 59

1、首先需要到PHPExcel官网下载插件【图1】:http://phpexcel.codeplex.com/ 

 

1.png

 

 

 

 

 

 

 

                                图1

 

2、解压刚下载的文件打开看到一下【图2】

 

QQ图片20151104211356.png

 

 

 

 

 

 

 

 

 

 

 

 

 

图2

 

3、打开Classes文件修改 PHPExcel.php 文件 修改为 PHPExcel.class.php 【图3】

 

QQ图片20151104211628.png

图3

 

4、将 PHPExcel文件夹  与 PHPExcel.class.php 文件  复制到 Thinkphp下 ThinkPHP\Library\Org\Util  【图4】

 

a3d058db48a5efc4d99488ccd182daaa.png

 

 

 

图4

 

5、下面写在方法中的调用前台代码首先要上传文件

    <form id="addform" name="addform" class="form-horizontal" action="" method="post" enctype="multipart/form-data">
    <input id="lefile" type="file"  name="excelData" >
    <input   type="submit"   class="search_submit" value="提交" />
    </form>

 

6、下面是php主要代码也就是后台代码

          首先是上传方法

//上传方法
    public function upload()
    {
        header("Content-Type:text/html;charset=utf-8");
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =     3145728 ;// 设置附件上传大小
        $upload->exts      =     array('xls', 'xlsx');// 设置附件上传类
        $upload->savePath  =      '/'; // 设置附件上传目录
        // 上传文件
        $info   =   $upload->uploadOne($_FILES['excelData']);
        $filename = './Uploads'.$info['savepath'].$info['savename'];
        $exts = $info['ext'];
        //print_r($info);exit;
        if(!$info) {// 上传错误提示错误信息
              $this->error($upload->getError());
          }else{// 上传成功调用导入的方法
                  $this->import($filename, $exts);
        }
    }
    //时间转换类
    public function GetData($val){ 
        $n = intval(($val - 25569) * 3600 * 24); //转换成1970年以来的秒数
        $gregorian=gmdate('Y-m-d H:i:s', $n);//格式化时间
        return $gregorian;
    }

    读取文件方法

//导入数据方法
    protected function import($filename, $exts='xls')
    {
        //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
        import("Org.Util.PHPExcel");
        //创建PHPExcel对象,注意,不能少了\
        $PHPExcel=new \PHPExcel();
        //如果excel文件后缀名为.xls,导入这个类
        if($exts == '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();
        }
        $data=array();
        $data_sum=array();
        //载入文件
        $PHPExcel=$PHPReader->load($filename);
        //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
        $currentSheet=$PHPExcel->getSheet(0);
        //获取总列数
        $allColumn=$currentSheet->getHighestColumn();
        //获取总行数
        $allRow=$currentSheet->getHighestRow();
        //循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
        for($currentRow=1;$currentRowgetValue();
                if($cell instanceof PHPExcel_RichText){
                    $cell  = $cell->__toString();
                }    
                $data[$currentColumn]=$cell;
            }
            //存入一个数组准备下面方法调用
            $data_sum[$currentRow]=$data;

        }
     
      $this->save_import($data_sum);
    }

最后导入数据库的方法

//保存导入数据
    public function save_import($data){
    $map=M('***');
    $map->startTrans();
    $cout=count($data,0)+1;
    for ($i=2;  $iadd($tk);
       }
    $map->commit();//成功则提交哦啊
    print_r("成功");

    }
展开阅读全文
打赏
0
0 收藏
分享
加载中
推荐一个功能丰富、兼容性好、高性能的 Excel 文档基础库 #Excelize#https://github.com/xuri/excelize
2020/11/24 14:29
回复
举报
更多评论
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部