php上传excel表格并获取数据
这个是最近需要做的一个功能,在网上也查看了很多相关的文章,基本上大同小异,在这里整理一下。
一:首先是html部分
二:就是去接收和处理上传的文件了。php部分
//文件存放的路径 $save_path="/upload/"; //文件存放的文件夹 $save_files=$this->geturl(); 这个是以年月日新建的文件夹,仅供参考。 //先检查当前文件夹是否存在,如不存在,创建文件夹 functiongeturl() { $year=date('Y'); $month=date('m'); $day=date('d'); $str=$year.$month.$day; if(strtoupper(substr(PHP_OS,0,3))=='WIN'){ $path=getcwd()."/upload/".$str; }else{ $path="/mnt/erp/".$str; } if(!file_exists($path))//判断文件夹是否存在 { mkdir($path); } //return$path."/"; return$str."/"; } //这个是上传文件到需要保存的位置, if(!@move_uploaded_file($_FILES[$upload_name]["tmp_name"],$save_path.$file_path)){ $error="error|上传文件错误."; exit(0); }
下面开始获取你上传的excel数据了
//获取上传表格的数据 $file_name=$save_path.$file_path;//获取上传文件的地址名称 require_onceAPPPATH.'views/IDC/config/PHPExcel.php'; require_onceAPPPATH.'views/IDC/config/PHPExcel/IOFactory.php'; require_onceAPPPATH.'views/IDC/config/PHPExcel/Cell.php'; $objReader=PHPExcel_IOFactory::createReader('excel2007');//建立reader对象 $objPHPExcel=$objReader->load($file_name); $sheet=$objPHPExcel->getSheet(); $highestRow=$sheet->getHighestDataRow();//取得总行数 $highestColumn_num=PHPExcel_Cell::columnIndexFromString($sheet->getHighestDataColumn());//列数 //$columns=PHPExcel_Cell::getColumn($highestColumn_num); $columns=array('A','B','C','D','E','F','G'); $arr_result=array(); $dealer_element=array(); for($j=2;$j<=$highestRow;$j++){ for($k=0;$kgetActiveSheet()->getCell($columns[$k].$j)->getValue();//这个就是获取每个单元格的值 $value=trim($value); if(empty($value)){ $value=NULL; } $dealer_element[$k]=$value; //这里可以根据要求,做一些数据的验证 } $arr_result[$j]=$dealer_element; } echojson_encode($arr_result);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票