Bootstrap

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

主要方法:

调用

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

注:

1.  在设置自适应之前需要调用以下方法,否则会报跟踪列错误。

sheet.trackAllColumnsForAutoSizing()

2. 当你去调用上个方法的时候发现,sheet并没有这个方法,这里需要sheet 和 workbook 定义为

SXSSFSheet
SXSSFWorkbook

3. 查看代码里是否有设置行高,和列宽的代码都注释掉,否则自适应不会生效

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

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

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

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

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

;