diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java index f6896851..6e933714 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java @@ -471,17 +471,19 @@ public class MaterialService { } Workbook workbook = Workbook.getWorkbook(file.getInputStream()); Sheet src = workbook.getSheet(0); + //获取真实的行数,剔除掉空白行 + int rightRows = ExcelUtils.getRightRows(src); List depotList= depotService.getDepot(); int depotCount = depotList.size(); Map depotMap = parseDepotToMap(depotList); User user = userService.getCurrentUser(); List mList = new ArrayList<>(); //单次导入超出1000条 - if(src.getRows()>1002) { + if(rightRows > 1002) { throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_IMPORT_OVER_LIMIT_CODE, String.format(ExceptionConstants.MATERIAL_IMPORT_OVER_LIMIT_MSG)); } - for (int i = 2; i < src.getRows(); i++) { + for (int i = 2; i < rightRows; i++) { String name = ExcelUtils.getContent(src, i, 0); //名称 String standard = ExcelUtils.getContent(src, i, 1); //规格 String model = ExcelUtils.getContent(src, i, 2); //型号 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java b/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java index 4fed723f..fe2cbf14 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java @@ -207,6 +207,31 @@ public class ExcelUtils { } } + /** + * 获取真实的行数,剔除掉空白行 + * @param src + * @return + */ + public static int getRightRows(Sheet src) { + int rsRows = src.getRows(); //行数 + int rsCols = src.getColumns(); //列数 + int nullCellNum; + int rightRows = rsRows; + for (int i = 1; i < rsRows; i++) { //统计行中为空的单元格数 + nullCellNum = 0; + for (int j = 0; j < rsCols; j++) { + String val = src.getCell(j, i).getContents().trim(); + if (StringUtils.isEmpty(val)) { + nullCellNum++; + } + } + if (nullCellNum >= rsCols) { //如果nullCellNum大于或等于总的列数 + rightRows--; //行数减一 + } + } + return rightRows; + } + public static String getDateContent(Sheet src, int rowNum, int colNum) { // 日期 类型的处理 Cell c = src.getRow(rowNum)[colNum];