zoukankan      html  css  js  c++  java
  • Java导出Excel表,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进去,就是真正的值了。

     //字体
             HSSFFont font = workbook.createFont();
             font.setFontName("仿宋_GB2312");
             font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
             font.setFontHeightInPoints((short) 12);
             
             HSSFCellStyle style = workbook.createCellStyle();
             //设置颜色
             style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
             style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);//前景颜色
             style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//填充方式,前色填充
             //边框填充
             style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
             style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
             style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
             style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
             style.setFont(font);
             style.setWrapText(false);

  • 相关阅读:
    错误 2 error C2059: 语法错误:“::”
    完全卸载session 所需要的函数
    header("Location:http://www.baidu.com");
    php str_pad() 用法
    php str_pad();
    设计模式系列-01-开篇
    博客园样式的设置系列-01-侧边栏和皮肤的设置
    vs20132015UML系列之-类图
    php获取当前时间和转换格式
    saltstack:multi-master configuration
  • 原文地址:https://www.cnblogs.com/haw2106/p/7196010.html
Copyright © 2011-2022 走看看