标签:空行 index sheet column excel 导入 failMessage titleCell append
/**
* @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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。