转载在C站上面看到一个大神写的自定义封装方法

转载地址:springboot 使用Poi 自定义封装方法 合并excel中的单元格_Tongyao-CSDN博客_springboot合并单元格

之前都是使用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));}

转载地址: springboot 使用Poi 自定义封装方法 合并excel中的单元格_Tongyao-CSDN博客_springboot合并单元格

JAVA EXCEL导出合并单元格自定义封装方法相关推荐

  1. java实现excel导出合并单元格

    随着数据的不断增长,很多时候需要将数据导出到Excel中进行分析.处理和展示.而Java作为一种流行的编程语言,自然也提供了很多实现Excel导出的方法.本文将介绍如何使用Java实现Excel导出, ...

  2. 为什么不居中(CellRangeAddress),关于excel导出合并单元格

    一.最近做一个导出excel需求,按理说很简单,但是发现写公共方法的哥们儿并没有搞合并单元格,而且也不太熟悉他的那种写法,所以简单研究了下,和大家讨论,至少思路千万条,越想越明了. 1.之前的写法简单 ...

  3. java 复杂表头excel导出合并单元格

    easyexcel-wraper easyexcel-wraper是什么? 一个方便读取excel内容,且可以使用注解进行内容验证的包装工具 用到alibaba 2.1.4版本 定义导出excel复杂 ...

  4. Java 利用hutool工具实现导出excel并合并单元格

    Java 利用hutool工具实现导出excel并合并单元格 controller层调用service,就一个核心方法,没错就下面这个代码就能实现了.前提是项目里面要引用hutool包.把我这个复制到 ...

  5. Springboot导出excel,合并单元格示例

    原文链接:Springboot导出excel,合并单元格示例 更多文章,欢迎访问:Java知音,一个专注于技术分享的网站 以下用一个示例来说明springboot如何导出数据到excel. 首先引入M ...

  6. java-easyExcel导出-合并单元格

    实现层: public ResultDto statisticalBudgetDetailExport(HttpServletResponse response, ReimbursementFormD ...

  7. POI进行Excel的合并单元格数据处理

    POI进行Excel的合并单元格数据处理 近日接到一个要处理合并Excel单元格的上料表的需求,就到网上找了一些模板,发现有的技术大牛还是挺厉害的,对他们致以敬意. 合并单元格工具类 在这个类中将传入 ...

  8. 玩电脑的岂能不知道excel怎么合并单元格?

    excel怎么合并单元格?单元格太小导致输入的内容只能看见一部分,这种情况下需要将两列合并起来,空出更多输入内容的空间,以此达到美观又详细的视觉效果,下面来看看如何操作吧! 方法一 第1步:打开一个e ...

  9. excel通过合并单元格“增加行高”(大于最大行高409)

    excel中的行高最大为409,若要想更大,只能合并单元格 设置行高方法:选中单元格所在的行,右击,选"行高" 合并单元格:选中要合并的单元格,右击,选"设置单元格格式& ...

最新文章

  1. Cache Memory技术示例
  2. Java学习总结:29
  3. 快速开发生命周期支持工具
  4. 希尔排序(缩小增量排序)(插入排序的优化版) C++代码实现及算法分析 恋上数据结构笔记
  5. 计算机任务驱动法教学应用,任务驱动教学法在计算机教学中的应用
  6. 给.net初学者的一些建议(共勉之)[转载]
  7. 解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题
  8. 计算机二级考试题有之前的吗,国家计算机二级上机做对前两题为什么过不了
  9. 为什么TCP连接不可靠
  10. mongo 查询显示字段_MongoDB查询操作限制返回字段的方法
  11. 美国大学计算机科学与物理,美国大学物理专业浅谈
  12. 深析Vue双向数据绑定(MVVM模型)
  13. 51单片机(十六)—— 定时器0和定时器1寄存器介绍及功能描述
  14. 计算机自带录像视频文件代码,Windows自带录屏如何录制视频文件?
  15. 【Python】python初学者应该知道与其他语言差异化的高效编程技巧(附测试代码+详细注释)
  16. Linux操作系统之虚拟化
  17. 气质由内而外 都市白领3个饮食排毒法则
  18. 微信公众号访问本地服务器的方法
  19. Deadline = Diedline?拖延症幻想美好
  20. configure.ac

热门文章

  1. Kali Linux 更换系统主题
  2. 机器学习实战-2.1
  3. 下架师姐关于研究生阶段和毕业论文的一些叮嘱
  4. 变频器转矩计算机构负载,变频器如何与平方转矩负载匹配?
  5. 全球及中国LCP行业建议咨询及未来发展趋势可行性研究报告2022版
  6. HTML-2.HTML入门—如何在IntellijIDEA中新建一个HTML项目
  7. iOS 根据经纬度计算日出和日落时间
  8. 三坐标检测之测针标定
  9. Win10下ANSA安装完后打不开的解决方案
  10. 商场三十六计——第10计 “笑里藏刀”