页面jsp及js代码:
<script type="text/javascript">
function submitExcel(url){
$.ajaxMutiUpload({
type:"post",
url:url,
secureuri:true,// 安全提交,默认为false
dataType:'json',
fileElementId:"zzsFile",//上传文件的id
success:function(data){
$("#operateWin").window('close');
searchForm();
$.messager.show({
title:'友情提示',
msg:data.message
});
},
error:function(XMLHttpRequest,textStatus,errorThrown){
$.messager.show({
title:'友情提示',
msg:data.message
});
}
});
}
</script>
<FORM id="moduleform" method="post">
<TABLE cellspacing="1" cellpadding="5" width="100%" class="tb_background2">
<tr>
<td style="text-align:center;">
<input type="file" name="zzsFile" id="zzsFile"/>
</td>
</tr>
<TR>
<TD style="text-align:right;">
<a href="javascript:void(0)" class="easyui-linkbutton" data-options = "iconCls:'icon-ok'" data-options = "iconCls:'icon-ok'" οnclick="submitExcel('${pageContext.request.contextPath}/secondaryAction_uploadFile.action')">提交</a>
<a href="javascript:void(0)" class="easyui-linkbutton" data-options = "iconCls:'icon-back'" οnclick="closeWindow()">返回</a>
</TD>
</TR>
<TR>
<TD style="text-align:left;">温馨提示:
<br> <font color="red"><B>只支持excel导入</B></font>
</TD>
</TR>
</TABLE>
</FORM>
后台java代码对excel文件进行解析:
//上传的文件:File zzsFile
//文件名称:String zzsFileFileName
//需要保存数据到的list:List<Secondary> secondaryList
public List<Secondary> loadUserInfo(File zzsFile, String zzsFileFileName,
List<Secondary> secondaryList) {
try {
FileInputStream fis = new FileInputStream(zzsFile);
Workbook wb = null;
if (zzsFileFileName.toLowerCase().endsWith("xls")) {
wb = new HSSFWorkbook(fis);
}else if(zzsFileFileName.toLowerCase().endsWith("xlsx")) {
wb = new XSSFWorkbook(fis);
}
Sheet sheet = wb.getSheetAt(0);
int rowNum = sheet.getLastRowNum()+1;
//i 从1开始表示第一行为标题 不包含在数据中
for(int i=1;i<rowNum;i++){
Secondary secondary = new Secondary();
Row row = sheet.getRow(i);
int cellNum = row.getLastCellNum();
for(int j=0;j<cellNum;j++){
Cell cell = row.getCell(j);
String cellValue = null;
if(cell != null){
cell.setCellType(Cell.CELL_TYPE_STRING);
cellValue = cell.getStringCellValue();
}
switch(j){//通过列数来判断对应插如的字段
//数据中不应该保护ID这样的主键记录
//case 0 : user.setId(Integer.valueOf(cellValue));break;
case 0 : secondary.setSecondaryIdentity(cellValue);break;
case 1 : secondary.setSecondaryName(cellValue);break;
case 2 : secondary.setSecondarySex(cellValue);break;
case 3 : secondary.setSecondaryBirthday(cellValue);break;
case 4 : secondary.setSecondaryProvince(cellValue);break;
case 5 : secondary.setSecondaryCity(cellValue);break;
case 6 : secondary.setSecondaryCounty(cellValue);break;
case 7 : secondary.setSecondaryFreeTuition(cellValue);break;
case 8 : secondary.setSecondaryFreeTerm(cellValue);break;
case 9 : secondary.setSecondaryAgriAccount(cellValue);break;
case 10 : secondary.setSecondaryAccountDes(cellValue);break;
case 11 :
if(cellValue!=null&&cellValue.length()!=0){
Dormitory dormitory = (Dormitory) getSession().get(Dormitory.class,Long.parseLong(cellValue));
if(dormitory!=null){
dormitory.setPeopleNum(dormitory.getPeopleNum()+1);
if(dormitory.getPeopleNum()!=dormitory.getRentPeople()){
secondary.setDormitory(dormitory);
getSession().update(dormitory);
}
}
}
break;
}
}
secondaryList.add(secondary);
}
} catch (Exception e) {
e.printStackTrace();
}
return secondaryList;
}