栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于poi对中文自适应列宽无效的处理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于poi对中文自适应列宽无效的处理

关于poi对中文自适应列宽无效的处理 问题

设置自适应列宽后,windows系统单元格不会换行显示, linux系统会换行展示

可能原因
  1. excel 对中文的支持不好,excel计算单元格中含中文的列宽比实际的要小,如中文列宽实际为100,但是在excel中可能只有90
  2. linux系统不支持中文自适应,可以参考 解决poi导出excel列宽自适应,autoSizeColumn(i)方法不支持中文、linux环境下报空指针的问题
解决思路

设置自适应后,再将自适应的列宽调整为之前的1.2(或其他倍数),90 *1.2 = 118,足以弥补之前的误差

放代码
// 之前
for (int i = 0; i < maxLength; i++) {
    // 使得每一行自适应
    sheet.autoSizeColumn(i, true);
    }
// 之后
for (int i = 0; i < maxLength; i++) {
    // 调整每一列宽度
    sheet.autoSizeColumn(i, true);
    // 解决自动设置列宽中文失效的问题
    sheet.setColumnWidth(i, sheet.getColumnWidth(i) * 12 / 10);
    }
参考文档
  1. 解决java poi导出excel中文自适应列宽不生效问题
  2. 解决poi导出excel列宽自适应,autoSizeColumn(i)方法不支持中文、linux环境下报空指针的问题
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592445.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号