`
123629996
  • 浏览: 291100 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

POI 实现合并单元格以及列自适应宽度

阅读更多

POI是apache提供的一个读写Excel文档的开源组件,在操作excel时常要合并单元格,合并单元格的方法是:

sheet.addMergedRegion(new CellRangeAddress(1, 1, 0, 2));

自适应列宽度:

sheet.autoSizeColumn(1); 

sheet.autoSizeColumn(1, true);

这两种方式都是自适应列宽度,但是注意这个方法在后边的版本才提供,poi的版本不要太老。 注意:第一个方法在合并单元格的的单元格并不好使,必须用第二个方法。

sheet.setColumnWidth(m, “列名”.getBytes().length*2*256);

这个方法是计算字符串的长度,以便设置列宽,该方法在解决中文的问题上比较好,前面两种方法对中文不好好用。。。。

还有在自适应宽度的时候,有时候遇到单元格是公式单元格,自适应不起作用,那是因为单元格存的是公式,并不是真正的数据,解决方法:

HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet.getWorkbook());

 

CellValue cell71Val = evaluator.evaluate(cell71);

cell71.setCellValue(cell71Val.getNumberValue());

将格式化后的数据再次set进去,就是真正的值了。

 

分享到:
评论
4 楼 狂盗一枝梅 2017-10-17  
3 楼 fireinjava 2017-07-20  
补充一点:要在写完所有单元格后再调用自适应这个方法。
for (int i = 0; i < titleArr.length; i++) {
	sheet.autoSizeColumn(i);
}
2 楼 caijingbin0207 2013-04-16  
   很好很好,正需要!
1 楼 wangshanshan_java 2012-11-08  
  

相关推荐

Global site tag (gtag.js) - Google Analytics