RegionUtil.setBorderLeft(1, cellRangeAddress, sheet, wb); RegionUtil.setBorderBottom(1, cellRangeAddress, sheet, wb); RegionUtil.setBorderRight(1, cellRangeAddress, sheet, wb); RegionUtil.setBorderTop(1, cellRangeAddress, sheet, wb);
上面是加边框的核心代码,为单元格的上,下左,右四边加边框!我测试在单个合并单元格的时候,是没有什么问题的!但是当我用下面代码的时候会出现有的边框没有
Row row=sheet.createRow((short)0); ImageUtil.createCell("排序", 0, sctext, row); CellRangeAddress CellRangeAddress1 = new CellRangeAddress(0,2,0,0); sheet.addMergedRegion(CellRangeAddress1); RegionUtil.setBorderLeft(1, cellRangeAddress, sheet, wb); RegionUtil.setBorderBottom(1, cellRangeAddress, sheet, wb); RegionUtil.setBorderRight(1, cellRangeAddress, sheet, wb); RegionUtil.setBorderTop(1, cellRangeAddress, sheet, wb); ImageUtil.createCell("项目名称", 1, sctext, row); CellRangeAddress CellRangeAddress2 = new CellRangeAddress(0,2,1,1); sheet.addMergedRegion(CellRangeAddress2); ImageUtil.createCell("姓名", 2, sctext, row); CellRangeAddress CellRangeAddress3 = new CellRangeAddress(0,2,2,2); sheet.addMergedRegion(CellRangeAddress3); ImageUtil.createCell("各指标完成情况总数据", 3, sctext, row); CellRangeAddress CellRangeAddress4 = new CellRangeAddress(0,0,3,8); sheet.addMergedRegion(new CellRangeAddress(0,0,3,8)); ImageUtil.createCell("各指标完成率", 9, sctext, row); CellRangeAddress CellRangeAddress5 = new CellRangeAddress(0,0,9,14); sheet.addMergedRegion(CellRangeAddress5); Row row2=sheet.createRow((short)1); ImageUtil.createCell("覆盖面", 3, sctext, row2); CellRangeAddress CellRangeAddress6 = new CellRangeAddress(1,1,3,4); sheet.addMergedRegion(CellRangeAddress6); ImageUtil.createCell("频次", 5, sctext, row2); CellRangeAddress CellRangeAddress7 = new CellRangeAddress(1,1,5,6); sheet.addMergedRegion(CellRangeAddress7);
结果如下图:
最后在没有办法的情况下,只能一点点调试。结果确十分坑爹,折腾了我好几个小时上网看资料。最后原来是以为顺序问题导致的.
其原因是因为在编辑单元格的时候,后者覆盖了前者的style.
解决办法:
封装了一个方法:
public void setBorder(CellRangeAddress cellRangeAddress, Sheet sheet, Workbook wb) throws Exception { RegionUtil.setBorderLeft(1, cellRangeAddress, sheet, wb); RegionUtil.setBorderBottom(1, cellRangeAddress, sheet, wb); RegionUtil.setBorderRight(1, cellRangeAddress, sheet, wb); RegionUtil.setBorderTop(1, cellRangeAddress, sheet, wb); }然后将调用该方法的步骤放到最后,记得是最后,就是全部单元格合并之后,否则会覆盖的,如下:
super.setBorder(CellRangeAddress1, sheet, book); super.setBorder(CellRangeAddress2, sheet, book); super.setBorder(CellRangeAddress3, sheet, book); super.setBorder(CellRangeAddress4, sheet, book); super.setBorder(CellRangeAddress5, sheet, book); super.setBorder(CellRangeAddress6, sheet, book); super.setBorder(CellRangeAddress7, sheet, book); super.setBorder(CellRangeAddress8, sheet, book); super.setBorder(CellRangeAddress9, sheet, book); super.setBorder(CellRangeAddress10, sheet, book); super.setBorder(CellRangeAddress11, sheet, book); super.setBorder(CellRangeAddress12, sheet, book); super.setBorder(CellRangeAddress13, sheet, book); super.setBorder(CellRangeAddress14, sheet, book); super.setBorder(CellRangeAddress15, sheet, book); super.setBorder(CellRangeAddress16, sheet, book);
另外也参考了以下朋友提供的资源,非常感谢
特别应该感谢是下面这位仁兄:
相关推荐
在实际应用中,Apache POI允许我们定制Excel表格的样式,包括字体、颜色、边框、对齐方式等。此外,还可以设置条件格式,创建图表,以及处理图片和超链接。通过深入了解和实践,你可以用Apache POI构建功能丰富的...
本教程将详细讲解如何使用Apache POI在Web环境中导出Excel表格,避免生成不必要的临时文件,从而优化系统资源管理。 一、Apache POI简介 Apache POI 是一个开源项目,它提供了Java API来处理Microsoft的Office格式...
POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法
关于java EXCEL poi 合并后无法显示或无法设置边框问题 【本人亲测】 excel poi 新手! 坑了1.5天!
Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)
本教程将深入探讨如何使用Apache POI库来复制Excel表格的指定行数及其样式。 首先,让我们理解标题"poi复制指定行数的Excel表格内容"。这指的是使用Apache POI库来复制Excel文件中特定行的数据,并保留原有的格式和...
本案例将深入讲解如何使用POI库进行Excel表格的操作。 一、POI库简介 Apache POI是Apache软件基金会下的一个项目,它为Java开发者提供了API,使得开发者可以处理Microsoft Office格式的文件。POI包含多个子项目,如...
3. **样式和格式**:POI允许设置单元格的样式,如字体、颜色、边框、对齐方式等,以增强Excel的可读性。 4. **异常处理**:确保在读写过程中捕获并处理可能出现的IO异常或其他运行时异常。 通过lib.rar和Poi02.rar...
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,尤其是Excel。在这个特定的例子中,我们将讨论如何使用POI库基于一个Excel模板文件循环输出数据行,并将结果导出为新的Excel文件。 首先,...
本篇文章将详细探讨如何使用Apache POI库来实现Excel表格的导出。 一、Apache POI简介 Apache POI是一个开源项目,最初由Gnumeric团队创建,后来被Apache软件基金会接纳。该库支持多种Office文档格式,如HSSF(用于...
标题中的“用Poi导出Excel表格数据”指的是使用Apache POI库来创建和操作Microsoft Excel文件的过程。Apache POI是Java领域一个广泛使用的库,它允许开发者读取、写入以及修改MS Office格式的文件,包括Excel。下面...
标题提到的"poi导入导出Excel表格的所以jar包"指的是使用Apache POI库进行Excel操作所需的依赖库。 1. **poi-3.8-20120326.jar**: 这是Apache POI的主要核心库,包含了处理Excel文件的核心类和方法。例如,你可以...
### POI生成Excel报表知识点详解 #### 一、Apache POI简介 Apache POI是Apache软件基金会的一个开源项目,主要用于处理Microsoft Office格式的文件。它提供了API来读写Word、Excel等Office文档格式。其中,处理...
本文将深入探讨如何使用POI库中的XSSFWorkbook类进行Excel表格的基本操作。 一、XSSFWorkbook简介 XSSFWorkbook是Apache POI库中处理.xlsx(Excel 2007及以上版本)文件的核心类。它基于OOXML(Office Open XML)...
- **样式与格式**: Apache POI允许设置单元格的字体、颜色、对齐方式、边框等样式。 - **公式与函数**: 支持在单元格中插入Excel公式,并计算结果。 - **图表与图像**: 可以在Excel文件中创建图表和插入图像。 -...
4. **对象映射**:设计一个接口或注解,让Java对象能自动与Excel表格对应,例如`@ExcelColumn`注解标记字段,指定列名和位置。 5. **数据验证**:添加数据校验功能,确保读取的数据符合预设规则。 6. **批处理操作...
Apache POI 是一个著名的 Java 库,用于读写 Microsoft Office 文件格式,如 Excel、Word 和 PowerPoint。POI 提供了一套全面的 API,使得开发者能够方便地在 Java 应用程序中处理这些文件。它的名称 "Poor ...
POI允许开发者对单元格进行细致的样式设置,包括边框样式、背景颜色、字体格式、对齐方式等。 ##### 5.1 POI样式相关类 - **HSSFCellStyle**:用于设置单元格样式。 - **HSSFColor**:用于设置单元格的颜色。 - **...