thinkphp3 + phpexcel 记录

项目用thinkPHP3开发,想要实现将excel数据导入到数据库的功能;

需要:

下载PHPExcel-1.8(提取码:t3at ),GitHub有点慢甚至不走,建议在科学上网环境下去GitHub下载;

一个excel文件,我这里用的是网上下载的城市列表(提取码:wt04);

一个数据库表(自行看字段修改成你需要的表)

1、将解压好的“PHPExcel.php”和文件夹“PHPExcel”导入到核心类库下  \ThinkPHP\Library\Vendor\PHPExcel(新建);

2、控制器内引用 

Vendor("PHPExcel.PHPExcel");
Vendor("PHPExcel.PHPExcel.IOFactory");

3、使用方法(完整代码)

        Vendor("PHPExcel.PHPExcel");
        Vendor("PHPExcel.PHPExcel.IOFactory");
        $filename = './public/test/country.xls';//excel文件路径
        $objPHPExcelReader = \PHPExcel_IOFactory::load($filename); //加载excel文件
        $strarr=array();//定义一个空数组
        foreach($objPHPExcelReader->getWorksheetIterator() as $sheet) //循环读取sheet
        {
            foreach($sheet->getRowIterator() as $row) //逐行处理
            {
                $lsstr="";//定义一个空字符串
                if($row->getRowIndex()<2) //确定从哪一行开始读取
                {
                    continue;
                }
                foreach($row->getCellIterator() as $cell) //逐列读取
                {
                    $data = $cell->getValue(); //获取cell中数据
                    $lsstr=$lsstr."/".$data;//得到的数据格式   /1/2/3/4
                }
                $lsstr=substr($lsstr,1);//截取  将头部/删掉
                $strarr[]=explode("/",$lsstr);   //分割成数组
            }
        }
        foreach ($strarr as $value){  //遍历数组
            if ($value[0]!=""){
                $inarr=array(
                    "cid"=>$value[0],
                    "name"=>$value[1],
                    "parent_id"=>$value[2],
                    "shortname"=>$value[3],
                    "leveltype"=>$value[4],
                    "citycode"=>$value[5],
                    "zipcode"=>$value[6],
                    "mergername"=>$value[7],
                    "lng"=>$value[8],
                    "lat"=>$value[9],
                    "pinyin"=>$value[10]

                );
                $res=M("city")->add($inarr);
                if ($res){
                    echo "插入数据成功!返回id:".$res.";<br />";
                }
            }
        }

 

这是全部插入数据库后遍历出来的数据,3750条,果然大中华地大物博,把韩国日本的村名都算上也没这么多吧

至此结束!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值