Java POI导出Excel时合并单元格没有边框的问题解决

 更新时间:2023年07月28日 15:40:16   作者:路言汐  
这篇文章主要给大家介绍了关于Java POI导出Excel时合并单元格没有边框的问题解决办法,文中通过代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友可以参考下

前言

今天用POI导出Excel的时候,发现导出的单元格确少边框,最后发现有2个方案可以解决。

方案一

CellRangeAddress的4个参数分别表示:起始行号,终止行号, 起始列号,终止列号

// 使用这种方式合并单元格时,要给单元格逐一设置带边框的样式
sheet.addMergedRegion(new CellRangeAddress(1, 1, 1, 3));
// 例如:
HSSFCellStyle defaultStyle = ExportToExcelUtil.setDefaultStyle(workbook);
// 为单元格设置带边框的样式
setCellStyles(row, 2, 3, defaultStyle );

/**
* 设置单元格样式
*/
private void setCellStyles(HSSFRow row, int start, int end, HSSFCellStyle cellStyle) {
    for (int i = start; i <= end; i++) {
       cell = row.createCell(i);
       cell.setCellStyle(cellStyle);
    }
} 

/**
* 带边框的样式+
*/
public static HSSFCellStyle setDefaultStyle(HSSFWorkbook workbook) {
	HSSFCellStyle cellStyle = workbook.createCellStyle();
	// 边框
	cellStyle.setBorderBottom(BorderStyle.THIN);
	cellStyle.setBorderLeft(BorderStyle.THIN);
	cellStyle.setBorderRight(BorderStyle.THIN);
	cellStyle.setBorderTop(BorderStyle.THIN);
	return cellStyle;
}

方案二

// 合并单元格
CellRangeAddress region = new CellRangeAddress(1, 1, 2, 2);
sheet.addMergedRegion(region);
                        
// 合并之后为合并的单元格设置样式
setRegionStyle(sheet, region, defaultStyle);

/**
* 为合并的单元格设置样式(可根据需要自行调整)
*/
@SuppressWarnings("deprecation")
public static void setRegionStyle(HSSFSheet sheet, CellRangeAddress region, HSSFCellStyle cs) {
    for (int i = region.getFirstRow(); i <= region.getLastRow(); i++) {
         HSSFRow row = sheet.getRow(i);
         if (null == row) row = sheet.createRow(i);
         for (int j = region.getFirstColumn(); j <= region.getLastColumn(); j++) {
              HSSFCell cell = row.getCell(j);
              if (null == cell) cell = row.createCell(j);
              cell.setCellStyle(cs);
         }
     }
}

总结 

到此这篇关于Java POI导出Excel时合并单元格没有边框问题解决的文章就介绍到这了,更多相关Java合并单元格没有边框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java8通过Function获取字段名的方法(获取实体类的字段名称)

    Java8通过Function获取字段名的方法(获取实体类的字段名称)

    Java8通过Function获取字段名。不用再硬编码,效果类似于mybatis-plus的LambdaQueryWrapper,对Java8通过Function获取字段名相关知识感兴趣的朋友一起看看吧
    2021-09-09
  • 归并排序时间复杂度过程推导详解

    归并排序时间复杂度过程推导详解

    这篇文章主要介绍了C语言实现排序算法之归并排序,对归并排序的原理及实现过程做了非常详细的解读,需要的朋友可以参考下,希望能帮助到你
    2021-08-08
  • Spring Boot 微信小程序接入微信支付功能

    Spring Boot 微信小程序接入微信支付功能

    本文详细介绍了使用SpringBoot框架接入微信支付的全流程,包括导入依赖、配置微信公众号信息、设置配置文件、编写支付相关实体类和API地址常量、实现支付服务以及Controller层的编写,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Java中Date时区的转换代码示例

    Java中Date时区的转换代码示例

    这篇文章主要给大家介绍了关于Java中Date时区转换的相关资料,当在不同的时区使用相同程序,时间的值只会为当地时间,这样就会造成时间混乱,需要的朋友可以参考下
    2023-07-07
  • Springboot集成fastDFS配置过程解析

    Springboot集成fastDFS配置过程解析

    这篇文章主要介绍了Springboot集成fastDFS配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java设计模式模板方法(Template)原理解析

    Java设计模式模板方法(Template)原理解析

    这篇文章主要介绍了Java设计模式模板方法(Template)原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • springboot html调用js无效400问题及解决

    springboot html调用js无效400问题及解决

    这篇文章主要介绍了springboot html调用js无效400的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • SpringBoot整合FastExcel实现导入导出功能的操作详解

    SpringBoot整合FastExcel实现导入导出功能的操作详解

    在微服务项目中经常会涉及到excel的导入导出功能,随着要处理的业务数据量越来越大,这也对程序提出了更高的要求,下面我们就来看看SpringBoot如何整合FastExcel实现导入导出功能吧
    2025-10-10
  • 基于mybatis-plus-generator实现代码自动生成器

    基于mybatis-plus-generator实现代码自动生成器

    这篇文章专门为小白准备了入门级mybatis-plus-generator代码自动生成器,可以提高开发效率。文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-05-05
  • Spring Data JPA系列QueryByExampleExecutor使用详解

    Spring Data JPA系列QueryByExampleExecutor使用详解

    这篇文章主要为大家介绍了Spring Data JPA系列QueryByExampleExecutor使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论