千家信息网

POI复制EXCEL单元格样式失败怎么办

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,今天就跟大家聊聊有关POI复制EXCEL单元格样式失败怎么办,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。XSSFCell复制单元格样式的两种
千家信息网最后更新 2024年11月26日POI复制EXCEL单元格样式失败怎么办

今天就跟大家聊聊有关POI复制EXCEL单元格样式失败怎么办,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

XSSFCell复制单元格样式的两种方式

1、直接将原单元格样式加载新建单元格上

XSSFRow newRow = sheet.createRow(row + 5);for (int cell = 0; cell < maxCellNum; cell++) {        XSSFCell newCell = newRow.createCell(cell);        newCell.setCellStyle(sheet.getRow(5).getCell(cell).getCellStyle());}

2、使用CellStyle的cloneStryleFrom方法复制一个新的样式

XSSFRow newRow = sheet.createRow(row + 5);for (int cell = 0; cell < maxCellNum; cell++) {        XSSFCell newCell = newRow.createCell(cell);        CellStyle cStyle = workbook.createCellStyle();        cStyle.cloneStyleFrom(newCell.getCellStyle());        newCell.setCellStyle(cStyle);}

一般情况推荐使用第二种方法,方法一可能会出现单元格样式被覆盖的情况。

问题背景:通过excel的模版,将具体数据填充入对应的单元格中生成一份商品清单的文件。模版如下(为了直观,特意将最后两列背景颜色设置成橙、红,便于对比)

最终生成excel文件如下

本次遇到的问题是不管使用上述任何一种方法都无法正常给单元格加样式。

经过排查发现是因为在给每行最有一个单元格添加样式之后没有为它进行赋值,因此样式不会生效,必须要对每行最后一个添加样式的单元格进行赋值,样式才会正常显示。

excelRow.getCell(10).setCellValue("");

经过修改后导出文件如下

看完上述内容,你们对POI复制EXCEL单元格样式失败怎么办有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

0