使用 jQuery ocupload 上传核心代码
$("#button-delete").upload({
action : '../../area_batchImport.action',
onComplete :function(response){
//选中文件后关闭
this.autoSubmit = false;
//获取文件名
var filename = this.filename();
//文件名的正则表达式
var regex = /^.*\.(xls|xlsx)$/
if(regex.test(filename)){
//匹配成功
this.submit();
}else{
$.messager.alert("提示","格式不正确请从新操作","error")
}
},
onComplete :function(){
$.messager.alert("提示","上传成功","success")
}
});
表现层处理上传文件代码
@Action(value="area_batchImport")
public String area_batchImport() throws Exception, IOException{
List<SubArea> areas = new ArrayList<SubArea>();
// 编写解析代码逻辑
// 基于.xls 格式解析 HSSF
// 1、 加载Excel文件对象
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream(file));
// 2、 读取一个sheet
HSSFSheet sheet = hssfWorkbook.getSheetAt(0);
// 3、 读取sheet中每一行
for (Row row : sheet) {
//跳过第一行
}
for (Row row : sheet) {
// 一行数据 对应 一个区域对象
if (row.getRowNum() == 0) {
// 第一行 跳过
continue;
}
// 跳过空行
if (row.getCell(0) == null
|| StringUtils.isBlank(row.getCell(0).getStringCellValue())) {
continue;
}
SubArea area = new SubArea();
area.setId(row.getCell(0).getStringCellValue());
area.setKeyWords(row.getCell(3).getStringCellValue());
area.setStartNum(row.getCell(4).getStringCellValue());
area.setEndNum(row.getCell(5).getStringCellValue());
area.setAssistKeyWords(row.getCell(7).getStringCellValue());
areas.add(area);
}
// 调用业务层
subAreaService.save(areas);
return NONE;
}