【折腾一上午】Java POI 导出 Excel 自适应列宽行高

主要方法:

调用

复制代码
sheet.autoSizeColumn(f) // f是需要自适应的列的序号

注:

  1. 在设置自适应之前需要调用以下方法,否则会报跟踪列错误。
复制代码
sheet.trackAllColumnsForAutoSizing()
  1. 当你去调用上个方法的时候发现,sheet并没有这个方法,这里需要sheet 和 workbook 定义为
复制代码
SXSSFSheet
复制代码
SXSSFWorkbook
  1. 查看代码里是否有设置行高,和列宽的代码都注释掉,否则自适应不会生效

  2. 把设置自适应行高放到填充数据之后,否则自适应也不会生效

5.对于中文列无法精准自适应,还是存在折行问题需要手动调整列宽:

复制代码
sheet.autoSizeColumn(f); // 自适应行高列宽
sheet.setColumnWidth(f, sheet.getColumnWidth(f) * 13 / 10); // 调整对中文的长度定位不准确

感谢提供中文列不适应解决方案的老哥:

https://blog.csdn.net/king0406/article/details/103409562

相关推荐
用户298698530141 分钟前
Java 使用 Spire.PDF 将PDF文档转换为Word格式
java·后端
渣哥10 分钟前
ConcurrentHashMap 1.7 vs 1.8:分段锁到 CAS+红黑树的演进与性能差异
java
间彧20 分钟前
复用线程:原理详解与实战应用
java
咖啡Beans2 小时前
使用OpenFeign实现微服务间通信
java·spring cloud
我不是混子2 小时前
说说单例模式
java
间彧4 小时前
SimpleDateFormat既然不推荐使用,为什么java 8+中不删除此类
java
间彧4 小时前
DateTimeFormatter相比SimpleDateFormat在性能上有何差异?
java
间彧4 小时前
为什么说SimpleDateFormat是经典的线程不安全类
java
MacroZheng5 小时前
横空出世!MyBatis-Plus 同款 ES ORM 框架,用起来够优雅!
java·后端·elasticsearch