废话不多说,直接给大家贴代码了,代码附有注释,相信大家都能看懂的,有不明白的地方欢迎给我留言。

前端HTML+JQuery  备注Jquery需要1.x版本,不能用2.x版本

1.引入必要文件及上传input

 <load file="__PUBLIC__/js/jquery-1.11.3.min.js" /> <load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" /> <load file="__PUBLIC__/uploadify/uploadify.css" /><input type="file" class="" id="student" name="student">

2.uploadify使用操作

<script> $(function(){ //ThinkPHP上传地址 var upload = "{:U(MODULE_NAME."/Student/upload")}"; //ThinkPHP sessionID的提交变量 //"VAR_SESSION_ID"=>"session_id",在ThinkPHP/Conf/convention.php中进行配置,默认关闭的需要开启 var sid = "{:session_id()}"; //导入数据地址 var daoruUrl = "{:U(MODULE_NAME."/Student/daoruHandle")}" //Amaze ui 模态框 var modal = $("#my-modal-loading"); //uploadify使用方法 $("#student").uploadify({  "swf"  : "__PUBLIC__/uploadify/uploadify.swf",  "uploader" : upload,  "buttonText" : "选择文件...",  "width":120,  "height":30,  "formData":{"session_id":sid},  "fileTypeExts":"*.xls",  //开始上传弹出模态框  "onUploadStart" : function(file) {  $("#alert-content").html("正在上传文件");   modal.modal();  },  //上传成功关闭模态框,并用后台函数导入数据  "onUploadSuccess":function(file, data, response){  $("#alert-content").html("正在导入数据");  data = eval("("+data+")");  $.ajax({   type: "POST",   url: daoruUrl,   data: {"file":data.file},   success: function(retdata){   modal.modal("close");   if(retdata==1){    alert("导入成功");   }else{    alert("导入失败");   }   },   dataType: "json"  });  } }); }); </script>

3、ThinkPHP控制器上传操作:备注需要引入Upload.class.php空间

 function upload(){  $config = array(   "maxSize" => 3145728,   "rootPath" => "./Uploads/",   "savePath" => "",   "saveName" => array("uniqid",""),   "exts"  => array("xls"),   "autoSub" => true,   "subName" => array("date","Ymd"),   );  $upload = new Upload($config);  // 上传文件   $info = $upload->upload();  if(!$info) {// 上传错误提示错误信息   $this->error($upload->getError());  }else{// 上传成功 获取上传文件信息   $file = $info["Filedata"]["savepath"].$info["Filedata"]["savename"];  }  //p($info);  $data = array(   "file"=>"./Uploads/".$file,   );  echo json_encode($data); }

4.导入数据进去mysql

//导入数据处理 function daoruHandle(){  $file = I("file");  $excelData = excel_to_mysql($file);  foreach($excelData["data"] as $row){   $data = array(    "xuehao"=>$row["xuehao"],    "xingming"=>$row["xingming"],    "xingbie"=>($row["xingbie"]=="男")?1:0,    "mima"=>md5($row["mima"]),    );   M("student")->add($data);  }  echo 1; }

5.PHPExcel读取Excel文件返回数据函数

function excel_to_mysql($file){  //导入PHPExcel第三方类库  //vendor("PHPExcel.PHPExcel");  import("Classes.PHPExcel",COMMON_PATH,".php");  //实例化PHPExcel类,用于接收Excel文件  $PHPExcel = new PHPExcel();  //读取Excel文件类实例化  $PHPReader = new PHPExcel_reader_Excel5();  //检测Excel版本是否可读  if(!$PHPReader->canRead($file)){   $PHPReader = new PHPExcel_Reader_Excel2007();   if(!$PHPReader->canRead($file)) return array("error"=>1);//未知版本的Excel  }  //读取Excel文件  $PHPExcel = $PHPReader->load($file);  //获得Excel中表的数量  $sheetCount = $PHPExcel->getSheetCount();  //获得第一张工作表  $sheet=$PHPExcel->getSheet(0);  //获得表中最大数据列名  $column = $sheet->getHighestColumn();  //获得表中最大数据行名  $row = $sheet->getHighestRow();  //循环获得表中数据  for($i=1;$i<=$row;$i++){   $data[] = array(    //通过工作表对象的getCell方法获得单元格 getValue方法获得该单元格数值    "xuehao"=>$sheet->getCell("A".$i)->getValue(),    "xingming"=>$sheet->getCell("B".$i)->getValue(),    "xingbie"=>$sheet->getCell("C".$i)->getValue(),    "mima"=>$sheet->getCell("D".$i)->getValue(),   );  }  //释放工作表对象  unset($sheet);  //释放读取Excel文件对象  unset($PHPReader);  //释放Excel文件对象  unset($PHPExcel);  //返回数据  return array("error"=>0,"data"=>$data); }

通过以上代码实现了ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据,希望对大家有所帮助。