之前都是使用sheet.addMergedRegion()方法一个一个计算合并单元格,还浪费大量时间,后来我自己特意封装了一个方法分享给大家,即拿即用,加几个就合并几个单元格方法。下面会给大家提供完整代码!

本人辛苦封装的合并单元格方法,全网只有一个!欢迎转载,转载不需要作者同意,但需说明转载地址!!

使用方法:

//合并单元格(你的sheet页,你的标题所占用的行,你的哪一列单元格需要合并)
mergeCell(sheet,1,3);

使用方法后的:

使用方法前的:

合并单元格封装的方法:

/*** 合并单元格* @author tongyao* @param sheet sheet页* @param titleColumn 标题占用行* @param cellIndex 那个单元格*/
public static void mergeCell(HSSFSheet sheet,int titleColumn,int cellIndex){//多少行int rowCount = sheet.getPhysicalNumberOfRows();String cellText = "";//开始下标int startIndex = 0;//结束下标int endIndex = 0;HSSFRow row = null;Cell cell = null;for(int i = titleColumn;i<rowCount;i++){row = sheet.getRow(i);cell = row.getCell(cellIndex);if(!cell.getStringCellValue().equals(cellText)){if(startIndex != 0){endIndex = (i-1);sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, cellIndex, cellIndex));}cellText = cell.getStringCellValue();startIndex = i;}}endIndex = (rowCount-1);sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, cellIndex, cellIndex));
}

完整代码给大家供上:

@GetMapping("/export")public void export(HttpServletResponse response){HSSFWorkbook wb = new HSSFWorkbook();// 根据页面index 获取sheet页HSSFSheet sheet = wb.createSheet("Sheet1");sheet.setColumnWidth(0,10000);sheet.setColumnWidth(1,10000);sheet.setColumnWidth(2,10000);sheet.setColumnWidth(3,10000);HSSFRow row1Title1 = sheet.createRow(0);Cell row1Cell1Title1 = row1Title1.createCell(0);row1Cell1Title1.setCellValue("序号");Cell row1Cell1Title2 = row1Title1.createCell(1);row1Cell1Title2.setCellValue("码云主页");Cell row1Cell1Title3 = row1Title1.createCell(2);row1Cell1Title3.setCellValue("CSDN主页");Cell row1Cell1Title4 = row1Title1.createCell(3);row1Cell1Title4.setCellValue("姓名");for(int i = 1;i< 20;i++){HSSFRow row = sheet.createRow(i);Cell row_cell1 = row.createCell(0);if(i <= 5){row_cell1.setCellValue("1");}else if(i <= 10 && i > 5){row_cell1.setCellValue("2");}else{row_cell1.setCellValue("3");}Cell row_cell2 = row.createCell(1);row_cell2.setCellValue("码云:https://gitee.com/Super_TongYao");Cell row_cell3 = row.createCell(2);row_cell3.setCellValue("CSDN主页:https://blog.csdn.net/u014641168");Cell row_cell4 = row.createCell(3);row_cell4.setCellValue("Tongyao");}//合并单元格(你的sheet页,你的标题所占用的行,你的哪一列单元格需要合并)mergeCell(sheet,1,0);mergeCell(sheet,1,3);try {OutputStream output = response.getOutputStream();response.reset();String fileName = "导出合并后的表单(码云:gitee.com/Super_TongYao).xls";// 设置文件头response.setHeader("Content-Disposition","attchement;filename=" + new String(fileName.getBytes("gb2312"), "ISO8859-1"));response.setContentType("application/msexcel");wb.write(output);wb.close();} catch (IOException e) {e.printStackTrace();}}/*** 合并单元格* @author tongyao* @param sheet sheet页* @param titleColumn 标题占用行* @param cellIndex 那个单元格*/public static void mergeCell(HSSFSheet sheet,int titleColumn,int cellIndex){//多少行int rowCount = sheet.getPhysicalNumberOfRows();String cellText = "";//开始下标int startIndex = 0;//结束下标int endIndex = 0;HSSFRow row = null;Cell cell = null;for(int i = titleColumn;i<rowCount;i++){row = sheet.getRow(i);cell = row.getCell(cellIndex);if(!cell.getStringCellValue().equals(cellText)){if(startIndex != 0){endIndex = (i-1);sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, cellIndex, cellIndex));}cellText = cell.getStringCellValue();startIndex = i;}}endIndex = (rowCount-1);sheet.addMergedRegion(new CellRangeAddress(startIndex, endIndex, cellIndex, cellIndex));}

转载不需要作者同意,但需说明转载地址!!

希望能帮到大家!!

作者个人主页,欢迎进来听听音乐坐坐:传送门

作者小店铺!史上最便宜小店铺,最低1元一万套HTML源码模板:传送门

Poi 自定义封装方法 合并excel中的单元格相关推荐

  1. 利用VBS合并Excel中相同单元格

    假如有一份这样的表格 你需要把不同行上相同的单元格进行合并,实现下面的效果 可以通过以下步骤用VBS来实现 1. 首先对表格进行排序,排序的这一列也是单元格合并时所参照的列,通常是学号或者ID列等 2 ...

  2. 使用VBA对Excel中的单元格按色阶赋颜色

    Excel中对单元格赋值,可以通过Cells(row, column).Interior.Color这个属性赋值.但这是一个十进制数,范围是0-16777215. 属于long长整形. 通常对颜色赋值 ...

  3. 如何在Excel中选择单元格时高亮显示行和列

    在Excel中,选择单元格时高亮显示行和列的方法如下: 选择要高亮显示的单元格 在"开始"选项卡中,单击"格式"命令按钮 在弹出的菜单中选择"行和列& ...

  4. Microsoft Excel 教程:如何在 Excel 中更改单元格的格式?

    欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中更改单元格的格式. 可以对整个单元格以及单元格中的数据应用格式. ...

  5. 如何在Excel中选择单元格时自动高亮显示整行和整列

    要在Excel中选择单元格时自动高亮显示整行和整列,请按照以下步骤操作: 打开Excel工作表. 点击"开始"菜单中的"Excel选项". 在Excel选项窗口 ...

  6. Excel中提取单元格中的部分内容或单元格中的数字公式大全(提取数字,提取前几位,提取指定文字之间的内容等等)

    Excel如何提取单元格中的部分文字或单元格中的数字 Excel如何提取单元格中的部分文字或单元格中的数字,整理了Excel中所有的提取要求,写成了一个公式翻译工具. 支持以下提取方式,输入提取要求, ...

  7. Excel中去除单元格内左上角的绿色小三角

    今天在编辑一个excel文件时,发现有一列的单元格中的左上角都有一个绿色的小三角. 当我用公式对这列中的单元格进行操作的时候,在公式总不能反应出值来. google了下,原来是excel的一个防止用户 ...

  8. sheet.range(‘U‘ + str(index - 1), ‘U‘ + str(index)).api.merge(),xlwings合并Excel上下相邻单元格,代码中断执行,也不报错。

    一.背景 采用xlwings包,根据template.xlsx模板,导出excel成果内容,包括多个sheet内容的填充,可实现上下相邻单元格的合并(左右单元格合并也是一个道理),代码运行卡着,也不报 ...

  9. Markdown_合并表格中的单元格

    转载:Markdown合并单元格 Markdown本身不提供单元格合并语法,但是,Markdown是兼容HTML的,因此,我们可以通过HTML的方式实现单元格合并. colspan:规定单元格可占据的 ...

最新文章

  1. java k线绘制,用Java绘制K线图[Java编程]
  2. 【Android工具】安卓魔力播放器moliplayer绿色无广告,手机DLNA播放器
  3. Unity3D ToolBar控件(工具栏)
  4. matlab中的灰度直方图及imhist函数
  5. Word 软回车和硬回车
  6. 在MAME里如何设置组合键
  7. div+css静态网页设计——男女装商城-功能齐全(40页) HTML+CSS+JavaScript 大学生网店作品 商城网页设计作业模板 学生网页制作源代码下载
  8. Elasticsearch Java虚拟机配置详解
  9. python testng_单元测试工具 TestNG 使用
  10. 安卓面试宝典,2021最新Android知识体系总结,面试资料分享
  11. 关于1NF、2NF、3NF、BCNF范式
  12. 风影ASP.NET基础教学16 母版页
  13. 如何使用Java+SSM(Spring+SpringMVC+Mybatis)开发个性化新闻推荐系统 在线新闻推荐系统 基于用户项目协同过滤、内容、聚类、关联规则推荐算法实现WebNewsRSMEx
  14. 设置淘宝sku方法技巧 淘宝SKU如何设置
  15. 2020-11-17
  16. python 输入与输出函数 IPO模式 200307
  17. DateTime常用方法,不积硅步无以至千里
  18. 海尔总裁张瑞敏50句管理箴言
  19. Excel的数据分析和管理
  20. 本地计算机t3服务服务启动后停止,T3服务启动后又停止了

热门文章

  1. vs2010打开需要安装 service pack1
  2. 大数据在快狗打车中的应用与实践
  3. 给孩子炖鳄鱼?时代变了,就比谁会玩儿...
  4. 十招电商运营技巧让你成为运营大牛
  5. 判断日期是否合法(Java精练版)
  6. 5G原理,5G给生活的影响,5G影响的行业
  7. ccsa安学网小程序_CCSA安学网题库及答案
  8. 《娱乐至死》读书笔记(part6)--教育的目的是让学生们摆脱现实的奴役,而现在的年轻人为了适应现实而改变自己
  9. Hutool Java常用工具类汇总
  10. bat写暴力破解系统密码