PHPExcel表格导入实现思路:首先需要将excel表格上传至服务器--->将上传至服务器的表格数据转换成数组--->将数组数据添加到数据库即可。
具体操作流程:
1. 首先需要去http://phpexcel.codeplex.com/ 下载PHPExcel压缩包。
![](https://box.kancloud.cn/dc01d759cdcb255754088b695bb14b9a_1052x484.png)
2.将Classes文件夹改PHPExcel(这个文件夹看个人喜好命名)放到自己的项目中。
![](https://box.kancloud.cn/f5d20b12a8e69719aababef3b9882aff_277x194.png)
3.准备前端界面上传excel文件。
~~~
<form action="<?=url('import_list')?>" enctype="multipart/form-data" method="post" class="js_form">
<input type="file" name="file" /> <br>
<input type="submit" value="上传" />
</form>
~~~
4.后台接收上传文件并移到指定目录。
~~~
public function import_list(){
if(request()->isPost()){
$file = request()->file('file');
// 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->move(ROOT_PATH . 'public' . DS . 'excel');
if($info){
//获取文件所在目录名
$dz=ROOT_PATH . 'public' . DS .'excel/'.$info->getSaveName();
//加载PHPExcel类
vendor("PHPExcel.PHPExcel");
//实例化PHPExcel类(注意:实例化的时候前面需要加'\')
$objReader=new \PHPExcel_Reader_Excel5();
$objPHPExcel = $objReader->load($dz,$encode='utf-8');//获取excel文件
$sheet = $objPHPExcel->getSheet(0); //激活当前的表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$a=0;
for($i=2;$i<=$highestRow;$i++)
{
//将表格里面的数据循环到数组中
$data[$a]['name'] = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();
$data[$a]['phone'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
$data[$a]['money'] = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
$data[$a]['province'] = $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
$data[$a]['city'] = $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();
$data[$a]['sr'] = $objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue();
$data[$a]['sq'] = $objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue();
$data[$a]['card'] = $objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue();
$data[$a]['loan'] = $objPHPExcel->getActiveSheet()->getCell("I".$i)->getValue();
$data[$a]['car'] = $objPHPExcel->getActiveSheet()->getCell("J".$i)->getValue();
$data[$a]['house'] = $objPHPExcel->getActiveSheet()->getCell("K".$i)->getValue();
$data[$a]['safe'] = $objPHPExcel->getActiveSheet()->getCell("L".$i)->getValue();
$data[$a]['fund'] = $objPHPExcel->getActiveSheet()->getCell("M".$i)->getValue();
$a++;
}
//往数据库添加数据
$res = db('apply')->insertAll($data);
$this->success('操作成功!');
}else{
// 上传失败获取错误信息
$this->error($file->getError());
}
}
return view();
}
~~~
添加成功后数据就导入到数据库里面了。