Excel导入解析
前端编写element
<el-button slot=“trigger”
size=“small”
type=“primary”
@click=“delFile”>选取文件
<el-button type=“primary”
@click=“onSubmit”>保存
Ajax请求
$.ajax({
url : ‘/tender/provinceSocialCheck/importExcel’,
type : ‘POST’,
async:false,//不异步(同步)
data : formData,
processData : false, // 告诉jQuery不要去处理发送的数据
contentType : false, // 告诉jQuery不要去设置Content-Type请求头
success : function® {
if(r.success){
//上传成功执行导入
doAnsyn(r.parameters.attachId);
}else{
$.unloading();
bootbox.alert(“导入失败!”);
}
},
})
后端
Controller
@RequestMapping(value=“importExcel”,method= RequestMethod.POST)
@ResponseBody
public Result importExcel(@RequestParam(“file”) MultipartFile file) throws IOException {
return baseService.importExcel(file);
}
Impl
@Override
public Result importExcel(MultipartFile file) throws IOException {
Result result = new Result();
//如果文件不为空,写入上传路径
if(file.isEmpty()) {
//说明文件为空
result.setCode(“400”);
result.setSuccess(false);
result.setMessage(“文件为空”);
return result;
}
Workbook workbook = null;
try{
workbook = new XSSFWorkbook(file.getInputStream());
}catch (Exception ex){
workbook = new HSSFWorkbook(file.getInputStream());
}
//拿到每一张表
Sheet sheetAt = workbook.getSheetAt(0);
//获得有效的行数
int lastRowNum = sheetAt.getLastRowNum();
ListsnCodeList=new ArrayList();
for (int i = 1; i < lastRowNum+1; i++) {
//获得每一行
Row row1 = sheetAt.getRow(i);
Cell cell1 = null;
Map<String, Object> map = new HashMap<>();
//获得第一列
if (null!=row1){
cell1 = row1.getCell(0);
}
if (null==cell1){
result.setCode(“400”);
result.setSuccess(false);
result.setMessage(“有单元格的数据为空”);
return result;
}
cell1.setCellType(CellType.STRING);
String stringCellValue = cell1.getStringCellValue();
snCodeList.add(stringCellValue);
}
return result;
}