You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Apache POI设置Excel列宽数值不准确问题求助

Apache POI设置Excel列宽与预期不符问题解答

问题原因

Apache POI的sheet.setColumnWidth()方法的第二个参数单位为1/256个字符宽度单位,这里的字符宽度单位取的是Excel工作簿默认字体下单个半角数字0的显示宽度。
而Excel界面显示的列宽数值,会自动扣除单元格边框、网格线的预留边距,不会和你设置的字符宽度完全对应:你设置的是100个字符宽度对应的100*256参数,Excel扣除约0.78个字符的预留空间后,最终显示的列宽就是99.22。

解决方案

如果需要Excel界面显示列宽刚好为100,你可以在设置时增加对应预留宽度的调整系数,参考代码如下:

// 0.78为常规默认字体(Calibri/宋体11号)下的预留调整系数,可根据实际使用字体微调
sheet.setColumnWidth(0, (int) Math.round((100 + 0.78) * 256));

内容的提问来源于stack exchange,提问作者Hans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:24:11