Java导出Excel表,POI 实现合并单元格以及列自适应宽度

时间:2024-10-30 11:39:49

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

(new CellRangeAddress(1, 1, 0, 2));

自适应列宽度:

(1); 

(1, true);

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

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

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

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

HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(());

 

CellValue cell71Val = (cell71);

(());

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

 

 //字体
         HSSFFont font = ();
         ("仿宋_GB2312");
         (HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
         ((short) 12);
         
         HSSFCellStyle style = ();
         //设置颜色
         (HSSFCellStyle.ALIGN_CENTER);
         (HSSFColor.SKY_BLUE.index);//前景颜色
         (HSSFCellStyle.SOLID_FOREGROUND);//填充方式,前色填充
         //边框填充
         (HSSFCellStyle.BORDER_THIN); //下边框
         (HSSFCellStyle.BORDER_THIN);//左边框
         (HSSFCellStyle.BORDER_THIN);//上边框
         (HSSFCellStyle.BORDER_THIN);//右边框
         (font);
         (false);