美文网首页
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