使用phpExcel导出参见另一篇文章 使用PHPExcel插件导出
本示例基于tp5框架操作,正文如下:
1.加入phpExcel到项目中
phpExcel获取的方式有很多,GitHub、百度、或者本站(https://www.ainixch.cn/download-39.html)
如果是tp5,可以防止vendor、extend目录下,自行操作,
tp5使用phpExcel参见 使用PHPExcel插件导出前面部分
2.使用phpExcel
如下:
class Excel extends Admin{
public static function inport_group($file){
//导入phpexcel
vendor("PHPExcel.PHPExcel");
//取消uploads前面的斜线,不然路径有错可以忽略此操作
$file=str_replace('/uploads/', 'uploads/', $file);
$objPHPExcel = new \PHPExcel();
$extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));//判断导入表格后缀格式
if($extension == 'xlsx') {
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel =$objReader->load($file, $encode = 'utf-8');
}else if($extension == 'xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel =$objReader->load($file, $encode = 'utf-8');
}
if(!$objPHPExcel){
return ['code'=>0,'msg'=>'文件打开失败','url'=>url('group/index'),'wait'=>3];
}
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();//取得总行数
$highestColumn = $sheet->getHighestColumn(); //取得总列数
for($i=2;$i<=$highestRow;$i++){
$data['cate'] = $objPHPExcel -> getActiveSheet() -> getCell("A".$i)->getValue();
$data['cate_nd'] = $objPHPExcel -> getActiveSheet() -> getCell("B".$i)->getValue();
$data['name'] = $objPHPExcel -> getActiveSheet() -> getCell("C".$i)->getValue();
$data['name_jx'] = $objPHPExcel -> getActiveSheet() -> getCell("D".$i)->getValue();
$data['site'] = $objPHPExcel -> getActiveSheet() -> getCell("E".$i)->getValue();
$data['vdt'] = $objPHPExcel -> getActiveSheet() -> getCell("F".$i)->getValue();
$data['disvdt'] = $objPHPExcel -> getActiveSheet() -> getCell("G".$i)->getValue();
$data['key'] = $objPHPExcel -> getActiveSheet() -> getCell("H".$i)->getValue();
$data['tel'] = $objPHPExcel -> getActiveSheet() -> getCell("I".$i)->getValue();
$data['location'] = $objPHPExcel -> getActiveSheet() -> getCell("J".$i)->getValue();
$data['construct']= $objPHPExcel -> getActiveSheet() -> getCell("K".$i)->getValue();
$data['status']=1;
$data['add_time']=time();
$allData[] = $data;
}
$nums=$i-2;
$msg="导入成功,共导入".$nums."条数据";
//批量插入数据
$res=Db::name('group_group')->insertAll($allData);
if($res){
return ['code'=>1,'msg'=>$msg,'url'=>url('group/index'),'wait'=>3];
}
}
}