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