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")) {
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取合并单元格的值
|
* 获取合并单元格的值
|
||||||
*
|
*
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user