zoukankan      html  css  js  c++  java
  • apache poi合并单元格设置边框

    HSSFWorkbook wb = new HSSFWorkbook();
    
    HSSFSheet sheet = wb.createSheet();
    
    //创建一个样式
    
    HSSFCellStyle styleBorderThin= wb.createCellStyle();
    
    setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
    setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
    setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
    setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
    
    
    
    HSSFRow row=sheet.createRow(2);   //第三行
    
    sheet.addMergedRegion(new CellRangeAddress(
    2, //first row (0-based)
    2, //last row (0-based)
    1, //first column (0-based)
    //last column (0-based)
    )); //第三行的 第2列到第6列(即B到F)  合并单元格
    
    row.createCell(1).setCellValue("答案选项"); //赋值
    row.createCell(2);
    row.createCell(3);
    row.createCell(4);
    row.createCell(5);
    row.createCell(6).setCellValue("回复情况");
    for (Cell cell : row) {
      cell.setCellStyle(styleBorderThin);
    }

    这里需要解释的是 因为1-6是合并单元格,值取的是第一个单元格的值,所以后面的单元格赋不赋值都无所谓,但是一定要createCell,

    row.createCell(2);
    row.createCell(3);
    row.createCell(4);
    row.createCell(5); 这一些并不是没意义的,如果去掉的话

    错误结果就是这样的:

    加上了2-5的createCell以后的正确结果:

    另外,我发现了一个有趣的地方,excel在操作合并单元格的时候,如果除了被合并的首个单元格以外的其他单元格也有值,会提示

    确定合并单元格之后,再把合并单元格去掉,那些值会被清空。

    但是如果你是通过POI 来进行合并单元格操作的,上面代为改为

    row.createCell(2).setCellValue("222");
    row.createCell(3).setCellValue("333");
    row.createCell(4).setCellValue("444");
    row.createCell(5).setCellValue("555");

    导出excel之后,你去掉合并单元格,会发现 这些值还会保留着,如图:

  • 相关阅读:
    tar 命令详解
    必问的Java集合框架面试题
    计算机网络面试总结
    Java并发面试题
    error: cannot lock ref 'refs/remotes/origin/master': unable to resolve reference 'refs/remotes/origin/master': reference broken...
    String 类型的值能够被反射改变从而引发的意外事件
    dir 命令手册
    JVM可达性分析算法中,哪些可以作为 root ?
    Resnest:注意力+分组卷积的融合
    mmdetection(一)安装及训练、测试VOC格式的数据
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/6678204.html
Copyright © 2011-2022 走看看