php上传excel表格并获取数据
2018-09-21 08:56
这个是最近需要做的一个功能,在网上也查看了很多相关的文章,基本上大同小异,在这里整理一下。
一:首先是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);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家