excel导入空行处理
/**
* @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);
}
}
`
分类:
java随笔
posted on 2022-09-07 10:23 HeavenTang 阅读(354) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix