您的位置:首页 > Web前端 > JQuery

使用jQuery OCUpload实现excel文件一键上传功能

2018-01-13 21:19 786 查看

使用jQuery OCUpload实现excel文件一键上传功能

js代码

//为导入按钮,添加一键上传效果
$("#button-import").upload({
action:'../../area_batchImport.action',
onSelect:function(){
//选中文件后,关闭自动提交
this.autoSubmit() = false;
//判定文件格式以.xls .xlsx结尾
var filename = this.filename();
var regex = /^.*\.(xls|xlsx)$/;
if(regex.test(filename)){
//满足
this.submit();
}else{
$.messager.alert("警告","只能上传.xls .xlsx结尾的文件","warning");
}
},
onComplete:function(response){
alert("文件上传成功!");
}
});


Action:

@Namespace("/")
@ParentPackage("json-default")
@Controller
@Scope("prototype")
public class AreaAction extends BaseAction<Area> {
//注入service
@Autowired
private AreaService areaService;

//接收上传文件
private File file;
public void setFile(File file) {
this.file = file;
}

//批量区域数据导入
@Action(value="area_batchImport")
public String batchImport() throws Throwable{
List<Area> areas = new ArrayList<Area>();
HSSFWorkbook hssfBook = new HSSFWorkbook(new FileInputStream(file));
HSSFSheet sheet = hssfBook.getSheetAt(0);
for (Row row : sheet) {
//一行数据对应一个区域对象
if(row.getRowNum()==0){
//第一行,跳过
continue;
}
//跳过空行
if(row.getCell(0)==null||StringUtils.isBlank(row.getCell(0).getStringCellValue())){
continue;
}
Area area = new Area();
area.setId(row.getCell(0).getStringCellValue());
area.setProvince(row.getCell(1).getStringCellValue());
area.setCity(row.getCell(2).getStringCellValue());
area.setDistrict(row.getCell(3).getStringCellValue());
area.setPostcode(row.getCell(4).getStringCellValue());

areas.add(area);
}
areaService.saveBatch(areas);
return NONE;
}
}


Service层代码:

@Service
@Transactional
public class AreaServiceImpl implements AreaService {
@Autowired
private AreaRepository areaRepository;
@Override
public void saveBatch(List<Area> areas) {
areaRepository.save(areas);
}

}


dao层:

public interface AreaRepository extends JpaRepository<Area,String> {

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息