POI shiftRows后合并单元格丢失的解决办法
来源:互联网 发布:淘宝怎么注册卖家 编辑:程序博客网 时间:2024/06/04 18:00
最近在写模板导出,插入行要使用shiftRows,结果移动的行所有的合并格式都丢失了。在google了一下也没找到解决办法,stackoverflow也没解决的办法,说是poi的一个bug。
自己想了一个解决办法,供大家参考:
InputStream template = TestExport.class.getResourceAsStream("/template/offering_list.xlsx"); Workbook book = new XSSFWorkbook(template); Sheet sheetAt = book.getSheetAt(0); System.out.println(sheetAt.getLastRowNum()); Row row = sheetAt.getRow(7); //先获取原始的合并单元格address集合 List<CellRangeAddress> originMerged = sheetAt.getMergedRegions(); //移动 sheetAt.shiftRows(8, sheetAt.getLastRowNum(), 1, true, true); Row create = sheetAt.createRow(8); //关键逻辑再这个for循环 for(CellRangeAddress cellRangeAddress : originMerged) { //这里的8是插入行的index,表示这行之后才重新合并 if(cellRangeAddress.getFirstRow() > 8) { //你插入了几行就加几,我这里插入了一行,加1 int firstRow = cellRangeAddress.getFirstRow() + 1; CellRangeAddress newCellRangeAddress = new CellRangeAddress(firstRow, (firstRow + (cellRangeAddress .getLastRow() - cellRangeAddress.getFirstRow())), cellRangeAddress.getFirstColumn(), cellRangeAddress.getLastColumn()); sheetAt.addMergedRegion(newCellRangeAddress); } }
测试通过
阅读全文
0 0
- POI shiftRows后合并单元格丢失的解决办法
- poi 合并单元格后添加边框
- poi导出excel,支持合并的单元格
- poi获取Excel合并单元格的值
- poi获取合并单元格的值
- poi给合并的单元格设置边框
- POI给合并的单元格设置边框
- poi excel合并单元格
- poi合并单元格
- POI.HSSF 合并单元格
- Apache POI 合并单元格
- POI 合并单元格
- POI合并单元格
- poi合并单元格
- POI 简单合并单元格
- poi 合并单元格 递归
- poi单元格合并
- POI 动态合并单元格
- 从grub2启动windows
- 【Java】-- 方法的重写和重载
- OSG和Qt结合
- mysql之 共享表空间与独立表空间、frm,MYD,MYI.idb,par文件说明
- 【Android学习笔记系列】AsyncTask、BaseAdapter整合异步加载用例(通过解析JSON格式数据加载网络图片内容)
- POI shiftRows后合并单元格丢失的解决办法
- selenium通过add_cookie()添加cookie
- EcmaScript 6 箭头函数
- Broadcast的简单封装
- 解决:CentOS下MySQL执行select ... into outfile ...: Can't create/write to file '...' (Errcode: 13)
- 又是线段树,看来还得温习
- 2017年上海金马五校程序设计竞赛(网上资格赛) A : Corn's new language(括号匹配+求深度)
- 实现qq聊天界面设计 完美解决edittext 软键盘弹出时listview背景不被挤压+listview Item和edittext的相对位置不变
- 抽象类的规则