php上传excel表格并获取数据
这个是最近需要做的一个功能,在网上也查看了很多相关的文章,基本上大同小异,在这里整理一下。
一:首先是html部分
<html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <input type="file" name="file" id="file" /> <input type="submit" name="submit" value="Submit" /> </form> </body> </html>
二:就是去接收和处理上传的文件了。php部分
//文件存放的路径 $save_path = "/upload/"; //文件存放的文件夹 $save_files = $this->geturl(); 这个是以年月日新建的文件夹,仅供参考。 //先检查当前文件夹是否存在,如不存在,创建文件夹 function geturl() { $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_once APPPATH . 'views/IDC/config/PHPExcel.php'; require_once APPPATH . 'views/IDC/config/PHPExcel/IOFactory.php'; require_once APPPATH . '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; $k < count($columns); $k++) { //读取单元格 $value = $objPHPExcel->getActiveSheet()->getCell($columns[$k] . $j)->getValue();//这个就是获取每个单元格的值 $value = trim($value); if (empty($value)) { $value = NULL; } $dealer_element[$k] = $value; //这里可以根据要求,做一些数据的验证 } $arr_result[$j] = $dealer_element; } echo json_encode($arr_result);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持【宜配屋www.yipeiwu.com】