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條,果然大中華地大物博,把韓國日本的村名都算上也沒這麼多吧

至此結束!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章