记一次POI复制EXCEL单元格样式失败
2019-08-21 09:50
225 查看
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("");
经过修改后导出文件如下
相关文章推荐
- 一次失败的刷题经历:[LeetCode]292之尼姆游戏(Nim Game)
- 记一次失败的抓包实验(burp\fiddler4+proxifier抓应用程序的网络报文)
- 记录一次阿里云ssh登录失败原因
- 安装jdk一次失败发现的问题
- 一次失败的广告转化率预估比赛
- 失败的一次,BP神经网络C++编程
- 一次失败的尝试(上):原来GetCustomAttributes方法每次都返回新的实例
- 实战:一次失败的WEB攻击试验,欢迎高手补充
- 一次失败的j2v8集成
- 编写脚本:访问一网站,每5分钟访问一次,如果访问成功,将访问记录保存到日志,如果访问失败,则发送邮件至指定邮箱
- 一次失败的QThread多线程加载Webpage.load()页面的尝试
- 一次失败的项目经理招聘经验
- 记另一次失败的面试经历
- 记一次PAM failure导致的ssh登录VPS失败
- 一次完整的cstore请求日志(失败,已存在)
- 计失败的一次js优化
- 记一次失败的oracle安装过程
- 一次失败的面试
- 一次失败的WebService布署
- 一次失败的带教经历