From 6999aac1ad7894eb086515b5a8bce4022012f6bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Sun, 12 Feb 2023 18:14:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=95=86=E5=93=81=E5=AF=BC?= =?UTF-8?q?=E5=85=A5Excel=EF=BC=8C=E8=8E=B7=E5=8F=96=E7=9C=9F=E5=AE=9E?= =?UTF-8?q?=E7=9A=84=E8=A1=8C=E6=95=B0=EF=BC=8C=E5=89=94=E9=99=A4=E6=8E=89?= =?UTF-8?q?=E7=A9=BA=E7=99=BD=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/service/material/MaterialService.java | 6 +++-- .../java/com/jsh/erp/utils/ExcelUtils.java | 25 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) 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];