最近在写模板导出,插入行要使用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,