HeavenTang

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

excel导入空行处理

image
image

/**
* @param file 文件(通过解析文件的形式获取必填列)
*/
`

public static void isRequired(MultipartFile file)  {

    Workbook wb;
    try {
        wb=WorkbookFactory.create(file.getInputStream());
    } catch (IOException | InvalidFormatException e) {
        throw new com.ly.education.commons.exception.ServiceException(2, e.getMessage());
    }
    Sheet sheet = wb.getSheetAt(0);
    //行数
    int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
    int lastRow = sheet.getLastRowNum();// 这种不会去除空格行
    //拿到表头信息
    Row titleRow = sheet.getRow(2);
    //列数
    short lastCell = titleRow.getLastCellNum();
    StringBuilder failMessage = new StringBuilder();
    String title ="错误信息:\r\n";
    for (int index = 3; index <= lastRow; index++) {
        Row row;
        try {
            row = sheet.getRow(index);
        } catch (NullPointerException e) {
            continue;
        }
        if(index == 149){
            System.out.println("ss");
        }
        if(row == null){

// sheet.shiftRows(index+1,lastRow,-1);
failMessage.append("第").append(index+1).append("行无数据,请将本行删除,本行导入失败").append(";\r\n");
continue;
}
for (int column = 0; column<lastCell; column++){
//获取标题栏文字进行解析
Cell titleCell=Optional.ofNullable(titleRow.getCell(column)).orElse(null);
if (Objects.nonNull(titleCell)){
String titleValue = Optional.ofNullable(titleCell.getStringCellValue()).orElse("");
if (titleValue.contains("必填")){

                    Cell rowCell=row.getCell(column);
                    String value = Optional.ofNullable(cellValueTurn(rowCell)).orElse("");
                    if ("".equals(value.trim())){
                        failMessage.append("第").append(index+1).append("行")
                                .append("第").append(getCellNum(column+1)).append("列")
                                .append(titleCell)
                                .append("不能为空").append(";\r\n");
                    }
                }
            }
        }

    }
    //返回错误信息
    if (!"".equals(failMessage.toString())){
        throw new ServiceException(522,title+failMessage);
    }
}

`

posted on   HeavenTang  阅读(354)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示