<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.6.4</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.13</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
value = cell.getRichStringCellValue().getString().trim();
break;
case Cell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)){
//用于转化为日期格式
Date d = cell.getDateCellValue();
value = formater.format(d);
}else if ("General".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue());
} else if ("m/d/yy".equals(cell.getCellStyle().getDataFormatString())) {
value = sdf.format(cell.getDateCellValue());
} else {
value = df2.format(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_BOOLEAN:
value = cell.getBooleanCellValue();
break;
case Cell.CELL_TYPE_BLANK:
value = "";
break;
default:
break;
}
switch (cell.getCellType()) {
// case CellType.CELL_TYPE_STRING:
case STRING:
value = cell.getRichStringCellValue().getString().trim();
break;
// case Cell.CELL_TYPE_NUMERIC:
case NUMERIC:
// if (HSSFDateUtil.isCellDateFormatted(cell)){
if (org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(cell)){
//用于转化为日期格式
Date d = cell.getDateCellValue();
value = formater.format(d);
}else if ("General".equals(cell.getCellStyle().getDataFormatString())) {
value = df.format(cell.getNumericCellValue());
} else if ("m/d/yy".equals(cell.getCellStyle().getDataFormatString())) {
value = sdf.format(cell.getDateCellValue());
} else {
value = df2.format(cell.getNumericCellValue());
}
break;
case BOOLEAN:
value = cell.getBooleanCellValue();
break;
case BLANK:
value = "";
break;
default:
break;
} //switch
// 设置表头字体样式
HSSFFont columnHeadFont = workbook.createFont();
columnHeadFont.setFontName("宋体");
columnHeadFont.setFontHeightInPoints((short) 10);
columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 列头的样式
HSSFCellStyle columnHeadStyle = workbook.createCellStyle();
columnHeadStyle.setFont(columnHeadFont);
// 左右居中
columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 上下居中
columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
columnHeadStyle.setLocked(true);
columnHeadStyle.setWrapText(true);
// 左边框的颜色
columnHeadStyle.setLeftBorderColor(HSSFColor.BLACK.index);
// 边框的大小
columnHeadStyle.setBorderLeft((short) 1);
// 右边框的颜色
columnHeadStyle.setRightBorderColor(HSSFColor.BLACK.index);
// 边框的大小
columnHeadStyle.setBorderRight((short) 1);
// 设置单元格的边框为粗体
columnHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
// 设置单元格的边框颜色
columnHeadStyle.setBottomBorderColor(HSSFColor.BLACK.index);
// 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)
columnHeadStyle.setFillForegroundColor(HSSFColor.WHITE.index);
// 设置普通单元格字体样式
HSSFFont font = workbook.createFont();
font.setFontName("宋体");
font.setFontHeightInPoints((short) 10);
// 设置表头字体样式
HSSFFont columnHeadFont = workbook.createFont();
columnHeadFont.setFontName("宋体");
columnHeadFont.setFontHeightInPoints((short) 10);
columnHeadFont.setBold(true);
// columnHeadFont.setBoldweight();
// 列头的样式
HSSFCellStyle columnHeadStyle = workbook.createCellStyle();
columnHeadStyle.setFont(columnHeadFont);
// 左右居中
columnHeadStyle.setAlignment(HorizontalAlignment.CENTER);
// 上下居中
columnHeadStyle.setVerticalAlignment(VerticalAlignment.CENTER);
columnHeadStyle.setLocked(true);
columnHeadStyle.setWrapText(true);
// 左边框的颜色
columnHeadStyle.setLeftBorderColor(IndexedColors.BLACK.index);
// 边框的大小
columnHeadStyle.setBorderLeft(BorderStyle.THIN);
// columnHeadStyle.setBorderLeft((short) 1);
// 右边框的颜色
columnHeadStyle.setRightBorderColor(IndexedColors.BLACK.index);
// 边框的大小
columnHeadStyle.setBorderRight(BorderStyle.THIN);
// 设置单元格的边框为粗体
columnHeadStyle.setBorderBottom(BorderStyle.THIN);
// columnHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
// 设置单元格的边框颜色
columnHeadStyle.setBottomBorderColor(IndexedColors.BLACK.index);
// 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)
columnHeadStyle.setFillForegroundColor(IndexedColors.WHITE.index);
说明:以下错误已尝试多种解决方案,暂时没有耐心继续解决,搁置(惭愧)
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.atTrace()Lorg/apache/logging/log4j/LogBuilder;
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1006)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:881)
Caused by: java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.atTrace()Lorg/apache/logging/log4j/LogBuilder;
开发过程中由于可能涉及到二次开发,原系统开发时间久远,开发人员没有达成一致规范设计,导致原开发内容风格各异,满足当时的开发场景,并由于原系统功能比较冗杂,pom依赖互相关联,因此部分依赖的版本升级或者增加会导致依赖冲突情况,以上,为poi版本升级需同步更正的地方;
poi版本升级之后随之改变的ExcelUtil中格式等内容的调用通过搜索基本完成problems更正;但是系统启动引发新的bug;
经检查有其他pom依赖的jar冲突问题,一环套一环,预计耗费过多时间解决此类依赖冲突问题,故已放弃除以上更正之外的其他修复,决定用老版本poi依赖;
个人开发中可以考虑在pom文件中用DepencyManagement
管理各依赖版本,防止各种冲突的反复定位和修复,耗费过多时间和精力;
对于Maven知识的掌握和了解还是有所欠缺,需系统学习了解