fix(88389): 增加表头校验
This commit is contained in:
+38
-20
@@ -2053,11 +2053,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
if (name.contains(".xlsx")||name.contains(".xlsm")) {
|
||||
workbook = WorkbookFactory.create(is);
|
||||
} else {
|
||||
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){
|
||||
throw new JeroBootException("请导入正确模板!");
|
||||
} else {
|
||||
throw new JeroBootException("Please import the correct template");
|
||||
}
|
||||
templateError();
|
||||
}
|
||||
//得到一个工作表
|
||||
Sheet sheet = workbook.getSheetAt(0);
|
||||
@@ -2069,6 +2065,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
int cellLength = sheet.getRow(0).getPhysicalNumberOfCells();
|
||||
// 验证模板表头是否正确
|
||||
Row rowTitle = sheet.getRow(0);
|
||||
// 校验表头
|
||||
try {
|
||||
checkTitle(sheet, titles);
|
||||
} catch (Exception e) {
|
||||
templateError();
|
||||
}
|
||||
// for (int i = 0; i < cellLength; i++) {
|
||||
// if (rowTitle != null) {
|
||||
// Cell cell = rowTitle.getCell(i);
|
||||
@@ -2106,25 +2108,13 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
cell.setCellType(CellType.STRING);
|
||||
String cellValue = cell.getStringCellValue();
|
||||
if(!cellValue.contains("填写说明")){
|
||||
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){
|
||||
throw new JeroBootException("请导入正确模板!");
|
||||
} else {
|
||||
throw new JeroBootException("Please import the correct template");
|
||||
}
|
||||
templateError();
|
||||
}
|
||||
} else{
|
||||
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){
|
||||
throw new JeroBootException("请导入正确模板!");
|
||||
} else {
|
||||
throw new JeroBootException("Please import the correct template");
|
||||
}
|
||||
templateError();
|
||||
}
|
||||
}else{
|
||||
if(MessageUtils.getLanguage().getValue().equals(LanguageEnum.CN.getValue())){
|
||||
throw new JeroBootException("请导入正确模板!");
|
||||
} else {
|
||||
throw new JeroBootException("Please import the correct template");
|
||||
}
|
||||
templateError();
|
||||
}
|
||||
|
||||
Map<String, Object> map = null;
|
||||
@@ -2191,6 +2181,34 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取合并单元格的值
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user