PHP 导入 Excel文件
确保你的框架加载好了PHPExcel插件,对下方$data变量中的键名进行修改然后,直接使用下边代码即可。
后台php接收处理
public function import(){
//判断上传文件存在值
if(!empty($_FILES)){
$filename = $_FILES['file']['name'];//被上传文件的名称
$filetype = $_FILES["file"]["type"];//被上传文件的类型
$filesize = $_FILES["file"]["size"];// 被上传文件的大小,以字节计
$filetmp = $_FILES["file"]["tmp_name"];//存储在服务器的文件的临时副本的名称
$fileerror = $_FILES["file"]["error"];//由文件上传导致的错误代码
//判断是否上传成功
if($fileerror==0){
//判断是否是excel表格
if($filetype=="application/vnd.ms-excel" || $filetype=="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"){
/*设置保存路径*/
$filePath = 'uploads/excel/';
$str = "";
/*加载PHPExcel*/
$this->load->library('PHPExcel.php');
$this->load->library('PHPExcel/IOFactory.php');
$time=date("YmdHis");
//获取上传文件的扩展名
$extend=strrchr ($filename,'.');
//上传后的文件名
$name=$time.$extend;
//上传后的文件名地址
$uploadfile=$filePath.$name;
//移动文件到指定目录
$result=move_uploaded_file($filetmp,$uploadfile);
//如果上传文件成功,就执行导入excel操作
if($result){
$inputFileType = IOFactory::identify($uploadfile);//确定输入文件的格式
$objReader = IOFactory::createReader($inputFileType);//穿件相对应的阅读器
$objPHPExcel = $objReader->load($uploadfile); //加载要读取的文件
$sheet = $objPHPExcel->getSheet(); //得到当前活动sheet
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow(); //取得总行数
$highestColumn = $objWorksheet->getHighestColumn();//取得总列数
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数
for ($row = 2;$row <= $highestRow;$row++){
$arr=array();
//注意highestColumnIndex的列数索引从0开始
for ($col = 0;$col < $highestColumnIndex;$col++){
$arr[$col] =$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
$data=array(
//根据Excel有几列数据
'键名1'=>$arr['0'],
'键名2'=>$arr['1'],
'键名3'=>$arr['2'],
);
/**
* TODO 可以执行数据库流程
*/
}
//可以var_dump查看当前变量
//var_dump($data);die;
unlink($uploadfile); //删除上传的excel文件(也可以保留)
}
}else{
$data = [ 'error'=>307,'msg'=>'上传文件非cvs/excel格式,请重新上传'];
return $data;
}
}else{
$data = [ 'error'=>307,'msg'=>'上传失败,请稍后重试'];
return $data;
}
}else{
$data = [ 'error'=>307,'msg'=>'上传失败,请稍后重试'];
return $data;
}
}