异常:
java.lang.IllegalArgumentException: The maximum column width for an individual cell is 255 characters.
org.apache.poi.xssf.usermodel.XSSFSheet.setColumnWidth(XSSFSheet.java:2386)
com.lemon.web.XExcelServlet.attach(XExcelServlet.java:69)
com.lemon.web.XExcelServlet.writeExcel(XExcelServlet.java:171)
com.lemon.web.XExcelServlet.doGet(XExcelServlet.java:149)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:404)
org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:136)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
解决办法:
在实体类中加入注释:跨行、行高度、列宽度。
在固定高度和宽度内,超出部分跨行显示,就可以解决内容超出单元格显示问题。
//添加注释
@Data
@EqualsAndHashCode
@ExcelIgnoreUnannotated
@HeadStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)
@ContentRowHeight(55)
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.LEFT,wrapped = BooleanEnum.TRUE)
@HeadRowHeight(40)
@ColumnWidth(30)
@HeadFontStyle(fontName = "微软雅黑",fontHeightInPoints = 14)
public class Description {
...
}
//@ContentRowHeight(55):设置行高
//@ColumnWidth(30):设置行宽
//wrapped = BooleanEnum.TRUE :设置跨行
@ContentRowHeight(55):设置行高
@ColumnWidth(30):设置行宽
wrapped = BooleanEnum.TRUE :设置跨行
版本问题:
如果填写wrapped = true,报错Incompatible types. Found: ‘boolean’, required: ‘com.alibaba.excel.enums.BooleanEnum’,
则更改为:wrapped = BooleanEnum.TRUE