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);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票