fix(88389): 增加表头校验

This commit is contained in:
yjz
2024-08-12 11:19:52 +08:00
parent 37dc9816db
commit bc841a4821
2 changed files with 38 additions and 20 deletions
@@ -2053,11 +2053,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
if (name.contains(".xlsx")||name.contains(".xlsm")) { if (name.contains(".xlsx")||name.contains(".xlsm")) {
workbook = WorkbookFactory.create(is); workbook = WorkbookFactory.create(is);
} else { } else {
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){ templateError();
throw new JeroBootException("请导入正确模板!");
} else {
throw new JeroBootException("Please import the correct template");
}
} }
//得到一个工作表 //得到一个工作表
Sheet sheet = workbook.getSheetAt(0); Sheet sheet = workbook.getSheetAt(0);
@@ -2069,6 +2065,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
int cellLength = sheet.getRow(0).getPhysicalNumberOfCells(); int cellLength = sheet.getRow(0).getPhysicalNumberOfCells();
// 验证模板表头是否正确 // 验证模板表头是否正确
Row rowTitle = sheet.getRow(0); Row rowTitle = sheet.getRow(0);
// 校验表头
try {
checkTitle(sheet, titles);
} catch (Exception e) {
templateError();
}
// for (int i = 0; i < cellLength; i++) { // for (int i = 0; i < cellLength; i++) {
// if (rowTitle != null) { // if (rowTitle != null) {
// Cell cell = rowTitle.getCell(i); // Cell cell = rowTitle.getCell(i);
@@ -2106,25 +2108,13 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
cell.setCellType(CellType.STRING); cell.setCellType(CellType.STRING);
String cellValue = cell.getStringCellValue(); String cellValue = cell.getStringCellValue();
if(!cellValue.contains("填写说明")){ if(!cellValue.contains("填写说明")){
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){ templateError();
throw new JeroBootException("请导入正确模板!");
} else {
throw new JeroBootException("Please import the correct template");
}
} }
} else{ } else{
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){ templateError();
throw new JeroBootException("请导入正确模板!");
} else {
throw new JeroBootException("Please import the correct template");
}
} }
}else{ }else{
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){ templateError();
throw new JeroBootException("请导入正确模板!");
} else {
throw new JeroBootException("Please import the correct template");
}
} }
Map<String, Object> map = null; Map<String, Object> map = null;
@@ -2191,6 +2181,34 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
return list; return list;
} }
private static void templateError() {
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){
throw new JeroBootException("请导入正确模板!");
} else {
throw new JeroBootException("Please import the correct template");
}
}
private void checkTitle(Sheet sheet, String[] titles) {
Row row = sheet.getRow(0);
// 获取列数
int cellLength = row.getPhysicalNumberOfCells();
if (!Objects.isNull(sheet) && Objects.equals(cellLength, titles.length)){
for (int i = 0; i < titles.length; i++) {
String stringCellValue = row.getCell(i).getStringCellValue();
if (stringCellValue.startsWith("*")){
stringCellValue = stringCellValue.substring(1);
}
if (!Objects.equals(stringCellValue, titles[i])) {
templateError();
}
}
}else {
templateError();
}
}
/** /**
* 获取合并单元格的值 * 获取合并单元格的值
* *