最近由于项目需要用到了POI来生成Excel表格,遇到单元格合并以后怎么加边框,老是解决不了,特意上来请教一下
在网上找了一堆,都不行。
自己写了一个笨方法,可以实现列合并加边框,但是行合并就不行了,方法如下:
/**
* 合并单元格加边框 水平
* @param sheet
* @param region
* @param cs
*/
public static void setCellBorder(int start, int end, HSSFRow row, HSSFCellStyle style) {
for(int i=start;i<=end;i++){
HSSFCell cell = row.createCell(i);
cell.setCellValue("");
cell.setCellStyle(style);
}
}
参数说明:start和并的第二列,end为合并的最后一列,row就为当前行,style样式(里面有设置边框)
例如从0-10列合并: ExcelUtil.setCellBorder(2,10,row,style); 这样可以设置
关于合并行设置也写了一个,但是不行,方法如下:
/**
* 合并单元格加边框 垂直
* @param sheet
* @param region
* @param cs
*/
public static void setCellBorder(int start, int end, int col, HSSFSheet sheet, HSSFCellStyle style) {
for(int i=start;i<=end;i++){
HSSFRow row = ExcelUtil.createRow(sheet, start, (short)0);
HSSFCell cell = row.createCell(col);
cell.setCellValue("");
cell.setCellStyle(style);
}
}
参数说明:start和并的第二行,end为合并的最后一行,col为哪一列,sheet就是当前表格对象,style样式(里面有设置边框)
下面是调用代码:
//第二行 制表时间
HSSFRow rowCreateTime = ExcelUtil.createRow(sheet, 1, (short)400);
String time = new SimpleDateFormat("yyyy年MM月dd日").format(new Date());
ExcelUtil.createCell(sheet, rowCreateTime, 0, styleTime,
new Region(1,(short)0,1,(short)27), "制表时间:"+time,null);
//合并后单元格设置边框
ExcelUtil.setCellBorder(1, 27, rowCreateTime, styleTime);
//第三行 目录
HSSFRow rowMenu = ExcelUtil.createRow(sheet, 2, (short)450);
HSSFRow rowMenu1 = ExcelUtil.createRow(sheet, 3, (short)450);
//单位
ExcelUtil.createCell(sheet, rowMenu, 0, style,
new Region(2,(short)0,3,(short)0),"单位",4000);
ExcelUtil.setCellBorder(3, 3, 0, sheet, style);
//设备型号
ExcelUtil.createCell(sheet, rowMenu, 1, style,
new Region(2,(short)1,3,(short)1),"设备型号",2500);
ExcelUtil.setCellBorder(3, 3, 1, sheet, style);
//全年1-12月维修情况
ExcelUtil.createCell(sheet, rowMenu, 2, style,
new Region(2,(short)2,2,(short)13),"全年1-12月维修情况",null);
//合计
ExcelUtil.createCell(sheet, rowMenu, 14, style,
new Region(2,(short)14,3,(short)14),"合计",1200);
ExcelUtil.setCellBorder(3, 3, 14, sheet, style);
//全年1-12月维护情况
ExcelUtil.createCell(sheet, rowMenu, 15, style,
new Region(2,(short)15,2,(short)26),"全年1-12月维修情况",null);
//合计
ExcelUtil.createCell(sheet, rowMenu, 27, style,
new Region(2,(short)27,3,(short)27),"合计",1200);
ExcelUtil.setCellBorder(3, 3, 27, sheet, style);
请高手指教一下,有什么好的方法么?
- 大小: 111.7 KB
分享到:
相关推荐
POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法
关于java EXCEL poi 合并后无法显示或无法设置边框问题 【本人亲测】 excel poi 新手! 坑了1.5天!
此外,还可以设置单元格的样式,如字体、颜色、边框等,以使合并后的单元格更加美观。`XSSFCellStyle`类提供了这些功能,你可以创建样式对象,设置属性,然后将其应用于单元格。 总结,Java通过Apache POI库可以...
### POI 获取合并单元格详解 #### 一、概述 Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式的文档,如 Word、Excel 和 PowerPoint。在本篇文章中,我们将详细介绍如何使用 POI 处理 Excel 文件...
java POI导出Excel文件多表头文件
在Excel中,合并单元格是指将多个连续的单元格合并成一个单元格来显示数据。这在表格布局设计中非常有用,可以提高数据的可读性和美观性。然而,这对于数据处理来说是一个挑战,因为合并单元格实际上可能包含来自...
### 使用Apache POI获取含有合并单元格的Excel数据并存储为List 在处理Excel文档时,经常需要读取其中的数据并进行进一步的操作。当Excel文件中含有合并单元格时,简单的读取方法可能无法准确地获取到所有数据。...
POI 合并单元格 及 注意事项
利用poi进行excel相同内容合并单元格,只摘要了传入部分功能,请关注addMergedRegion方法
单元格合并是通过 `Sheet` 对象的 `mergeRegion` 方法实现的,该方法接受两个参数,分别表示要合并的区域的起始和结束单元格索引: ```java // 合并从第二列到第四列的单元格(索引从0开始) sheet.mergeRegions...
本文将深入探讨如何使用Java的Apache POI库来读取Excel文件,并处理其中合并单元格的数据,同时将这些数据存储到实体类中以供后续使用。 Apache POI是一个强大的库,允许程序员使用Java来创建、修改和显示Microsoft...
poi导入/导出Excel表格,合并单元格的读取和设置
本主题将深入探讨如何利用Java的Apache POI库中的XSSFWorkbook类来实现自由合并单元格,并设置单元格样式。Apache POI是一个流行的API,它允许开发者读取、创建和修改Microsoft Office格式的文件,包括Excel。 首先...
4. 保存和导出:完成数据填充和合并后,调用`Workbook`对象的`write()`方法将工作簿写入到输出流,然后可以提供给用户下载。 在描述中提到的“支持纵向合并单元格(合并重复内容)”可能是指在数据填充时,如果相邻...
在本文中,我们将深入探讨如何使用NPOI创建Excel文件,并进行单元格的样式设置,包括合并单元格、设置字体样式、边框以及对齐方式。 首先,创建一个新的Excel工作簿(HSSFWorkbook)是开始操作的基础。以下代码展示...
`mergeCells(cellStart, cellEnd)`函数执行实际的单元格合并。 5. **设置对齐方式和字体**: `builder.getParagraphFormat().setAlignment(ParagraphAlignment.LEFT)`将段落对齐方式设置为左对齐。`宋体;font-size...
以上就是关于使用Apache POI进行Excel操作的核心知识点,包括导入、导出、合并单元格以及处理计算公式的方法。在实际项目中,可以根据需求进行更复杂的功能定制,如设置单元格格式、读取数据验证规则等。
1. **合并单元格的概念**:在Excel中,合并单元格是指将一个或多个相邻的单元格合并成一个大单元格,这样内容将只显示在左上角的单元格中,而其他单元格则为空。 2. **数据处理问题**:在编程中,如Python的Pandas...
在这个场景中,我们关注的是如何使用POI来创建一个功能丰富的Excel导出工具类,它能够自动设置标题、列名、文件名,并且支持插入图片以及合并单元格。下面将详细介绍这些功能的实现。 首先,要创建一个Excel工作簿...
2. 创建目标文件:创建一个新的`Workbook`对象,这将是合并后的结果。 3. 遍历源文件:对于每个源文件的工作表,使用`Workbook.getSheet()`获取`Sheet`对象,然后遍历每个`Sheet`的`Row`。 4. 复制数据:将源文件的...