1.前端写法
<script type="text/javascript" src="../js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="../js/jquery-form.js"></script>
<form method="POST" enctype="multipart/form-data" id="form1" action="education/uploadExcel/upload">
<table>
<tr>
<td>选择文件: </td>
<td> <input id="upfile" type="file" name="upfile"></td>
</tr>
<tr>
<!-- <td><input type="submit" value="提交" onclick="return checkData()"></td> -->
<td><input type="button" value="导入班级数据" id="btn" name="btn" ></td>
<td><a href="/education/uploadExcel/download?fileName=111.xls" >下载</a></td>
<!-- <td> <input type="button" value="下载年级花名册模板" id="btn_down" name="btn_down" ><button onclick="download()" class="btn btn-warning " type="button">批量导出Excel <i class="fa fa-download"></i></button></td>--> </tr>
</table>
</form>
<script type="text/javascript">
//ajax 方式上传文件操作
$(document).ready(function(){
$('#btn').click(function(){
if(checkData()){
$('#form1').ajaxSubmit({
url:'/education/uploadExcel/ajaxUploadGrade',
dataType: 'json',
success: resutlMsg,
error: errorMsg
});
function resutlMsg(data){
if(data.meta.message=='ok'){
alert(data.data);
}else{
alert(data.meta.message);
}
$("#upfile").val("");
}
function errorMsg(){
alert("导入excel出错!");
}
}
});
$('#btn_down').click(function(){
/* $.post("/education/uploadExcel/download", { "fileName": "111.xls" },
function(data){
alert(data.meta.message);
console.log(data.meta.message);
}, "json"); */
/* try{
var elemIF = document.createElement("iframe");
elemIF.src = "/education/document/111.xls";
elemIF.style.display = "none";
document.body.appendChild(elemIF);
}catch(e){
window.confirm("下载URL出错!");
} */
});
});
//JS校验form表单信息
function checkData(){
var fileDir = $("#upfile").val();
var suffix = fileDir.substr(fileDir.lastIndexOf("."));
if("" == fileDir){
alert("选择需要导入的Excel文件!");
return false;
}
if(".xls" != suffix && ".xlsx" != suffix ){
alert("选择Excel格式的文件导入!");
return false;
}
return true;
}
//导出信息函数
function download(){
if(confirm("是否要导出数据?")){
var url = "/education/uploadExcel/downloadChild";
$.post(url,function(data){
alert(data.data);
});
}
}
</script>
2.后台代码
2.1、通过传统方式form表单提交方式导入excel文件
@UnSessionCheck
@RequestMapping(value="/upload",method={RequestMethod.GET,RequestMethod.POST})
public String uploadExcel(HttpServletRequest request) throws Exception {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
System.out.println("通过传统方式form表单提交方式导入excel文件!");
InputStream in =null;
List<List<Object>> listob = null;
MultipartFile file = multipartRequest.getFile("upfile");
if(file.isEmpty()){
throw new Exception("文件不存在!");
}
in = file.getInputStream();
listob = new ImportExcelUtil().getBankListByExcel(in,file.getOriginalFilename());
in.close();
//该处可调用service相应方法进行数据保存到数据库中,现只对数据输出
for (int i = 0; i < listob.size(); i++) {
List<Object> lo = listob.get(i);
InfoVo vo = new InfoVo();
vo.setName(String.valueOf(lo.get(0)));
vo.setCode(String.valueOf(lo.get(1)));
vo.setGrade(String.valueOf(lo.get(2)));
vo.setClassname(String.valueOf(lo.get(3)));
vo.setSex(String.valueOf(lo.get(4)));
logger.info("学生信息-->:"+" 姓名:"+vo.getName()+" 学号:"+vo.getCode()+" 年级:"+vo.getGrade()+" 班级:"+vo.getClassname()+" 性别:"+vo.getSex());
}
return "result";
}
2.2、通过 jquery.form.js 插件提供的ajax方式上传文件
@UnSessionCheck
@ResponseBody
@RequestMapping(value="/ajaxUpload",method={RequestMethod.GET,RequestMethod.POST})
public void ajaxUploadExcel(HttpServletRequest request,HttpServletResponse response) throws Exception {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
System.out.println("通过 jquery.form.js 提供的ajax方式上传文件!");
InputStream in =null;
List<List<Object>> listob = null;
MultipartFile file = multipartRequest.getFile("upfile");
if(file.isEmpty()){
throw new Exception("文件不存在!");
}
in = file.getInputStream();
listob = new ImportExcelUtil().getBankListByExcel(in,file.getOriginalFilename());
//该处可调用service相应方法进行数据保存到数据库中,现只对数据输出
for (int i = 0; i < listob.size(); i++) {
List<Object> lo = listob.get(i);
InfoVo vo = new InfoVo();
vo.setName(String.valueOf(lo.get(0)));
vo.setCode(String.valueOf(lo.get(1)));
vo.setGrade(String.valueOf(lo.get(2)));
vo.setClassname(String.valueOf(lo.get(3)));
vo.setSex(String.valueOf(lo.get(4)));
logger.info("学生信息-->:"+" 姓名:"+vo.getName()+" 学号:"+vo.getCode()+" 年级:"+vo.getGrade()+" 班级:"+vo.getClassname()+" 性别:"+vo.getSex());
}
PrintWriter out = null;
response.setCharacterEncoding("utf-8"); //防止ajax接受到的中文信息乱码
out = response.getWriter();
out.print("文件导入成功!");
out.flush();
out.close();
}