其他分享
首页 > 其他分享> > excel导入空行处理

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);
    }
}

`

标签:空行,index,sheet,column,excel,导入,failMessage,titleCell,append
来源: https://www.cnblogs.com/heavenTang/p/16664418.html