异常:

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐