第一种获取sheet的方法
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(this.getExcel()));
HSSFSheet sheet = wb.getSheetAt(0);
//this.getExcel()为上传的excel文件
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(this.getExcel()));
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(1);
Json jsonMsg = new Json();
if(row == null){
jsonMsg.setSuccess(false);
jsonMsg.setMsg("模板不规范,导入失败!");
}else{
String msg = getExcelContent(sheet);
jsonMsg.setSuccess(true);
jsonMsg.setMsg(msg);
}
this.writeJson(jsonMsg);
return NONE;
getExcelContent 为处理excel数据的方法
private String getExcelContent(HSSFSheet sheet) {
HSSFRow row;
try {
// 得到总行数
int rowNum = sheet.getLastRowNum();
// 正文内容应该从第四行开始,第一行为表头的标题
for (int i = 3; i <=rowNum; i++) {
Grade grade = new Grade();
row = sheet.getRow(i);
if(row != null){
if(row.getCell(1) !=null){ // 身份证
Object [] objects = findIdByIdCard(row.getCell(1).toString() , this.clazzOpenId);
if(objects.length == 0){ //不存在该身份证号的报名信息
idcardNotFoundNum++;
continue;
}
Integer signDetailId = Integer.parseInt(objects[0].toString());
Integer personId = Integer.parseInt(objects[1].toString());
Integer clazzOpenId = this.clazzOpenId ;
grade.setPersonId(personId);
grade.setSignDetailId(signDetailId);
grade.setClazzOpenId(clazzOpenId);
}else{
idcardBlank++;
continue;
}
if(row.getCell(5) !=null && row.getCell(5).toString() != "" ){ // 分数
String score = row.getCell(5).toString().trim();
if("缺考".equals(score)){
score = "-1";
}else if("作弊一".equals(score)){
score = "-2";
}else if("作弊二".equals(score)){
score = "-3";
}else if("免试".equals(score)){
score = "-4";
}
grade.setScore(Double.parseDouble(score));
}
if(StringUtils.isNotBlank(row.getCell(6).toString().trim())){ // 考试结果
String result = row.getCell(6).toString().trim();
if ("合格".equals(result)){
result = "1";
grade.setResult(Integer.parseInt(result));
}else if("不合格".equals(result)){
result = "0";
grade.setResult(Integer.parseInt(result));
}
grade.setStatus(RELEASE_NO);
}else{
grade.setStatus(RELEASE_NO);
}
if( grade.getPersonId() != null ){
Map map = scoreManageDao.countByPersonId(grade.getPersonId() , this.clazzOpenId);
if(map.size() == 0 ){
grade.setCreateOperator(getLoginUser().getId().toString());
grade.setCreateTime(new Date());
scoreManageDao.save(grade);
successNum++;
}else{
if(map.get("id") != null ){
grade.setId(Integer.parseInt(map.get("id")));
}
grade.setUpdateOperator(getLoginUser().getId().toString());
grade.setUpdateTime(new Date());
scoreManageDao.update(grade);
updateNum++;
}
}
}
}
}catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
第二种获取sheet的方法
File temp = null;
temp = new File(ExcelUploadFileUtil2.upload(file));
ExcelReader readerQuestions = null;
readerQuestions = ExcelUtil.getReader(temp, 0); //获取第一个分表
@RequestMapping(value = "/questions/",method = {RequestMethod.POST}, consumes = MediaType.ALL_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public Result uploadQuestions(@CurrentAdmin UserAdminEntity admin, @RequestParam(value = "file", required = true) MultipartFile file) throws Exception {
// 获取封装数据对象
File temp = null;
ExcelReader readerQuestions = null;
ExcelReader readerOptions = null;
List rePath = null;
if (file != null && !file.isEmpty()){
try {
temp = new File(ExcelUploadFileUtil2.upload(file));
readerQuestions = ExcelUtil.getReader(temp, 0); //获取第一个分表
readerOptions = ExcelUtil.getReader(temp, 1); //获取第二个分表
rePath = ExcelFileReadUtil.makePath(temp.getPath());
} catch (Exception e){
e.printStackTrace();
throw new FileUploadException("模板不正确");
}
// 插入试题
List
处理表格数据
/**
* 添加题目多
*/
public List