在网上搜了很久关于poi删除带有合并单元格的一行后,下面行数据向上移动一行时,出现乱合并的问题,看到有人提过这个问题,但是郁闷的很没有一个人回答过,而且大部分的文章都是关于什么合并单元格,读取Excel,写入Excel,真搞不懂,能来一个创新点的吗,唉!我出现的情况,如下图情况

原模板文件:

删除地11行带有合并单元格的行后,后面的数据上移,导致第12行上移后出现乱合并问题

我现在只有这种方法:因为是读取模板,向模板中写入数据,即模板就会固定,则通过找到要操作的带有合并单元格的行,通过removeMergedRegion(int i)这个方法来移除合并单元格,移除和即对应的行没有合并单元格了,再将后面的数据上移sheet.shiftRows(lastRowNum-4,lastRowNum,-1),根据这个思路看下面的代码:

public class PoiExcel {public static void main(String[] args) {try {InputStream is = new FileInputStream("report.xls");try {HSSFWorkbook workbook = new HSSFWorkbook(is);//找到工作博//获取sheetHSSFSheet sheet = workbook.getSheetAt(0);//找到sheetint lastRowNum = sheet.getLastRowNum();HSSFRow row = null;if(sheet.getRow(0)==null){row = sheet.createRow(0);}else{row = sheet.getRow(0);}// 向模板中写入数据HSSFCell cell = row.createCell(0);cell.setCellValue("100000");if(sheet.getRow(10)==null){row = sheet.createRow(10);}else{row = sheet.getRow(10);}HSSFRow rows = sheet.getRow(lastRowNum-5);rows.createCell(0).setCellValue("11111");rows.createCell(1).setCellValue("9283");rows.createCell(2).setCellValue("2222");rows.createCell(3).setCellValue("5555");rows.createCell(4).setCellValue("444");//寻找指定的合并单元格,再移除removeMergedRegion(sheet, lastRowNum-5, 1);//再将后面的数据向上移动sheet.shiftRows(lastRowNum-4,lastRowNum,-1);          OutputStream os = new FileOutputStream("D:/保费报表.xls");workbook.write(os);//将内存的中excel写入到保费报表.xls中} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}}public static void removeMergedRegion(HSSFSheet sheet,int row ,int column)  {  int sheetMergeCount = sheet.getNumMergedRegions();//获取所有的单元格 int index = 0;//用于保存要移除的那个单元格序号for (int i = 0; i < sheetMergeCount; i++) { CellRangeAddress ca = sheet.getMergedRegion(i); //获取第i个单元格int firstColumn = ca.getFirstColumn();  int lastColumn = ca.getLastColumn();  int firstRow = ca.getFirstRow();  int lastRow = ca.getLastRow();  if(row >= firstRow && row <= lastRow)  {  if(column >= firstColumn && column <= lastColumn)  {  index = i;}  }  }sheet.removeMergedRegion(index);//移除合并单元格}
}

删除后的结果:

poi删除带有合并单元格的行的问题相关推荐

  1. Java POI 对Excel合并单元格的数据处理

    Java POI 对Excel合并单元格的数据处理 最近在项目开发过程中,有个一个导入Excel文件处理合并单元格数据的需求,就自己在网上找了一个模板,自己进行二次开发来开发需求. Excel工具类 ...

  2. 【删除含有合并单元格的excel某列】

    删除含有合并单元格的excel某列: 提示:这里简述项目相关背景: 项目场景:昨天帮朋友忙,需求是删除excel的某一列,而该列被包含在合并单元格中. 我以为弄个dataframe多简单的事情,没想到 ...

  3. 合并单元格的行高自动调整

    合并单元格的行高自动调整 一.思路 #mermaid-svg-iekgewFLT3w8zJv0 {font-family:"trebuchet ms",verdana,arial, ...

  4. pandas读取带有合并单元格的excel表格

    pandas读取带有合并单元格的excel表格 今天在工作的时候碰到读取含有合并单元格的问题,发现读取出来的数据是这样的 发现合并单元格只有第一格有内容,其他的都被填充成空值了,找了一圈发现有一个办法 ...

  5. poi 读取excel合并单元格两种方式

    说明: excel合并是用选择的两个或更多单元格创建一个单元格的过程.合并单元格时,如果有多个选择的单元格包含数据,则将保留左上角或右上角(取决于当前的视图方向)单元格中的数据,并删除其余的所有数据. ...

  6. Poi导入excel(合并单元格)

    1.引入pom文件 <!-- 操作以 .xls 为后缀的 Excel --><dependency><groupId>org.apache.poi</grou ...

  7. java word合并单元格_java使用freemarker模板导出word(带有合并单元格)文档

    前言:最近要做一个导出word功能,其实网上有很多的例子,但是我需要的是合并单元格的,可是查了好久都没有自己想要的.研究了几天其实挺简单的,在这儿我就简单的介绍一下吧!(此方法只是一种思路,借鉴者还有 ...

  8. View UI (iview)表格合并单元格(行/列合并)

    有时我们在开发过程中会遇到表格里有合并单元格的需求. 今天以View UI (iview)组件库为例. 1. 打开iview官网-table会发现有合并单元格示例: 2. 但是在实际项目中,无法做到像 ...

  9. POI Excel 06 合并单元格,设置字体样式

    @author YHC 合并单元格 //创建ExcelWorkbook wb = new HSSFWorkbook();//创建工作薄Sheet sheet = wb.createSheet(&quo ...

最新文章

  1. 使用ASP.NET Abstractions增强ASP.NET应用程序的可测试性
  2. Flash和JavaScript通信
  3. kotlin 用协程做网络请求_Android使用Kotlin协程封装网络库
  4. 【算法】集成学习原理
  5. Spring 事务基于注解和xml方式
  6. Qt Linguist 开发人员 programmers
  7. 某pl/sql培训练习题
  8. Spring Cloud与微服务学习总结(8)——Spring Boot、微服务架构和大数据治理三者之间的故事
  9. elasticsearch中文分词
  10. 机械革命bios升级_旧笔记本光驱换SSD,升级内存,改造散热还能再战5年
  11. 大数据工程师、数据挖掘师和数据分析师有啥区别
  12. 聚类算法Kmens和密度峰值聚类
  13. DARPA到底是什么?一个能轻松将人类变成电子生化人的科技
  14. java软连接_硬链接和软连接
  15. 程序员颈椎病康复秘籍,你值得拥有!
  16. SSRS 2008 冻结首行
  17. SVM-支持向量机理解(拉格朗日乘子法(Lagrange multiplier))
  18. Explicit 关键字
  19. 黑科技编程开发,利用Python使图片完美去除水印
  20. 电商系统-提交订单并发处理

热门文章

  1. 【微学堂】实战为上!深入解析20个运维命令
  2. 接口测试用例设计实践总结
  3. 给你们讲个笑话——低代码会取代程序员
  4. 大一下实验总结(三)
  5. 硬币面值组合问题(完全背包问题)
  6. [windows10]设置任务计划程序定时执行却不执行python脚本的原因
  7. 【量化笔记】ARCH效应检验及GARCH建模的python实现
  8. quartz建表语句
  9. word中插入图片,转pdf后,打印的图片出现阴影模糊的问题及处理办法
  10. 将图片转化为数据储存