前端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" />
<inputtype="file"class=""id="student"name="student">
2.uploadify使用操作
<script>$(function(){//Thinkphp上传地址varupload = "{:U(MODULE_NAME.'/Student/upload')}";//ThinkPHPsessionID的提交变量//'VAR_SESSION_ID'=>'session_id',在ThinkPHP/Conf/convention.php中进行配置,默认关闭的需要开启varsid = '{:session_id()}';//导入数据地址vardaoruUrl = "{:U(MODULE_NAME.'/Student/daoruHandle')}"//Amaze ui 模态框varmodal = $('#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空间
functionupload(){$config=array('maxSize' => 3145728,
'rootPath' => './Uploads/',
'savePath' => '',
'saveName' =>array('uniqid',''),
'exts' =>array('xls'),
'autoSub' =>true,
'subName' =>array('date','Ymd'),);$upload=newUpload($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,);echojson_encode($data);
}
4.导入数据进去MySQL
//导入数据处理functiondaoruHandle(){$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);
}echo1;
}
5.PHPExcel读取Excel文件返回数据函数
functionexcel_to_mysql($file){//导入PHPExcel第三方类库
//vendor('PHPExcel.PHPExcel');import('Classes.PHPExcel',COMMON_PATH,'.php');//实例化PHPExcel类,用于接收Excel文件$PHPExcel=newPHPExcel();//读取Excel文件类实例化$PHPReader=newPHPExcel_reader_Excel5();//检测Excel版本是否可读if(!$PHPReader->canRead($file)){$PHPReader=newPHPExcel_Reader_Excel2007();if(!$PHPReader->canRead($file))returnarray('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);//返回数据returnarray('error'=>0,'data'=>$data);
}