Poi 自定义封装方法 合并excel中的单元格
之前都是使用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中的单元格相关推荐
- 利用VBS合并Excel中相同单元格
假如有一份这样的表格 你需要把不同行上相同的单元格进行合并,实现下面的效果 可以通过以下步骤用VBS来实现 1. 首先对表格进行排序,排序的这一列也是单元格合并时所参照的列,通常是学号或者ID列等 2 ...
- 使用VBA对Excel中的单元格按色阶赋颜色
Excel中对单元格赋值,可以通过Cells(row, column).Interior.Color这个属性赋值.但这是一个十进制数,范围是0-16777215. 属于long长整形. 通常对颜色赋值 ...
- 如何在Excel中选择单元格时高亮显示行和列
在Excel中,选择单元格时高亮显示行和列的方法如下: 选择要高亮显示的单元格 在"开始"选项卡中,单击"格式"命令按钮 在弹出的菜单中选择"行和列& ...
- Microsoft Excel 教程:如何在 Excel 中更改单元格的格式?
欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中更改单元格的格式. 可以对整个单元格以及单元格中的数据应用格式. ...
- 如何在Excel中选择单元格时自动高亮显示整行和整列
要在Excel中选择单元格时自动高亮显示整行和整列,请按照以下步骤操作: 打开Excel工作表. 点击"开始"菜单中的"Excel选项". 在Excel选项窗口 ...
- Excel中提取单元格中的部分内容或单元格中的数字公式大全(提取数字,提取前几位,提取指定文字之间的内容等等)
Excel如何提取单元格中的部分文字或单元格中的数字 Excel如何提取单元格中的部分文字或单元格中的数字,整理了Excel中所有的提取要求,写成了一个公式翻译工具. 支持以下提取方式,输入提取要求, ...
- Excel中去除单元格内左上角的绿色小三角
今天在编辑一个excel文件时,发现有一列的单元格中的左上角都有一个绿色的小三角. 当我用公式对这列中的单元格进行操作的时候,在公式总不能反应出值来. google了下,原来是excel的一个防止用户 ...
- sheet.range(‘U‘ + str(index - 1), ‘U‘ + str(index)).api.merge(),xlwings合并Excel上下相邻单元格,代码中断执行,也不报错。
一.背景 采用xlwings包,根据template.xlsx模板,导出excel成果内容,包括多个sheet内容的填充,可实现上下相邻单元格的合并(左右单元格合并也是一个道理),代码运行卡着,也不报 ...
- Markdown_合并表格中的单元格
转载:Markdown合并单元格 Markdown本身不提供单元格合并语法,但是,Markdown是兼容HTML的,因此,我们可以通过HTML的方式实现单元格合并. colspan:规定单元格可占据的 ...
最新文章
- java k线绘制,用Java绘制K线图[Java编程]
- 【Android工具】安卓魔力播放器moliplayer绿色无广告,手机DLNA播放器
- Unity3D ToolBar控件(工具栏)
- matlab中的灰度直方图及imhist函数
- Word 软回车和硬回车
- 在MAME里如何设置组合键
- div+css静态网页设计——男女装商城-功能齐全(40页) HTML+CSS+JavaScript 大学生网店作品 商城网页设计作业模板 学生网页制作源代码下载
- Elasticsearch Java虚拟机配置详解
- python testng_单元测试工具 TestNG 使用
- 安卓面试宝典,2021最新Android知识体系总结,面试资料分享
- 关于1NF、2NF、3NF、BCNF范式
- 风影ASP.NET基础教学16 母版页
- 如何使用Java+SSM(Spring+SpringMVC+Mybatis)开发个性化新闻推荐系统 在线新闻推荐系统 基于用户项目协同过滤、内容、聚类、关联规则推荐算法实现WebNewsRSMEx
- 设置淘宝sku方法技巧 淘宝SKU如何设置
- 2020-11-17
- python 输入与输出函数 IPO模式 200307
- DateTime常用方法,不积硅步无以至千里
- 海尔总裁张瑞敏50句管理箴言
- Excel的数据分析和管理
- 本地计算机t3服务服务启动后停止,T3服务启动后又停止了