美文网首页
POI导出excel的一些问题解决

POI导出excel的一些问题解决

作者: 原来蜗牛不是牛 | 来源:发表于2017-10-17 16:06 被阅读0次

    合并单元格

    • 代码如下
    //参数依次代表的意思是:开始行,结束行,开始列,结束列;值都为int类型的数据
    cellRangeAddress = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
    sheet.addMergedRegion(cellRangeAddress);
    

    在excel文件中第一个单元格是从第1行,第一列开始的,我们在java中使用POI来操作excel的时候是从0开始计数的

    • 实现如下图的单元格合并
      即为(6,11,2,7),合并完成后出现如下的大白格子


      image.png

    向合并过后的单元格填充数据

    合并后的单元格,相当于变成了一个大的单元格,重点在于他是一个单元格,你只能向这个单元格填充一次数据,多次添加数据,后面的数据会覆盖前面的数据,
    就以上图合并后的单元格为例

    //合并第7行到第12行,第3列到第8列的单元格为一个单元格
    CellRangeAddress cellRangeAddress = new CellRangeAddress(6,11,2,7);
    sheet.addMergedRegion(cellRangeAddress);
    //得到当前单元格
    XSSFRow row = sheet.getRow(6);
    XSSFCell cell = row.getCell(2);
    //填入数据
    cell.setCellValue("测试数据");
    

    上述代码只能添加一行数据

    向合并后的单元格添加多行数据

    还是以上图为例子,代码如下
    在设置值的时候添加换行符
    cell.setCellValue("\n"+第一行数据+"\n"+第二行数据+"\n"+第三行数据);
    这样做了之后,导出的excel文件显示的数据还是并列在一行,当你点击后,它才会换行,所以还需要一句代码。
    在你设置单元格样式的时候让该单元格支持换行

    CellStyle cs = wb.createCellStyle();  
    cs.setWrapText(true);//重点就是这句话  
    cell.setCellStyle(cs);
    

    设置单元格类型为公式

    //设置单元格类型为公式
    cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
    // 设置公式内容
    cell.setCellFormula("B3*C3");
    

    相关文章

      网友评论

          本文标题:POI导出excel的一些问题解决

          本文链接:https://www.haomeiwen.com/subject/guzruxtx.html