使用列宽自适应方法sheet.AutoSizeColumn(i); 只能解决英文、数字列宽自适应,如果该列为中文,会出现列宽不足现象。
解决办法:
使用方法sheet.setColumnWidth(i, sheet.getColumnWidth(i) * 17 / 10);
for (int i = 0; i < headers.length; i++) {
// 调整每一列宽度
sheet.autoSizeColumn((short) i,true);
// 解决自动设置列宽中文失效的问题
sheet.setColumnWidth(i, sheet.getColumnWidth(i) * 17 / 10);
可以看到除了第一个列标参数外,还有第二个useMergedCells的布尔值参数。它的意思是,在进行列宽自适应时,要不要考虑计算已经进行合并的单元格里面的数据,不设置的话默认是false。
设置之后列宽和数据之间就不会很拥挤,留有间隔