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

使用Apache POI生成Excel模板时如何在创建文件时自动展示全部列

问题原因

  • Apache POI的XSSFSheet.setColumnWidth(int columnIndex, int width)方法第二个参数的单位为1/256个字符宽度,你当前代码直接传入目标字符宽度数值,实际列宽仅为预期的1/256,宽度过小就会呈现为列隐藏的效果。

修复方案

将循环中设置列宽的代码做如下修改,把目标字符宽度乘以256转换为方法要求的单位即可:

// 原代码
// currentSheet.setColumnWidth(i, fileToSTGCellValues_Widths.get(fileToSTGCellValues_Names[i]));
// 修改后代码
currentSheet.setColumnWidth(i, fileToSTGCellValues_Widths.get(fileToSTGCellValues_Names[i]) * 256);

如果需要更精准的列宽适配,也可以在写入所有单元格后调用currentSheet.autoSizeColumn(i)方法自动适配每列宽度,但该方法性能相对较低,你有明确固定列宽需求的话直接按上述方法修改即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:54:05