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合并单元格没有边框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈Java垃圾回收机制

    浅谈Java垃圾回收机制

    这篇文章主要介绍了浅谈Java垃圾回收机制,文中有非常详细的图文示例及代码示例,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Presto自定义函数@SqlNullable引发问题详解

    Presto自定义函数@SqlNullable引发问题详解

    这篇文章主要为大家介绍了Presto自定义函数@SqlNullable引发问题详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 解决maven build 无反应,直接terminated的问题

    解决maven build 无反应,直接terminated的问题

    下面小编就为大家带来一篇解决maven build 无反应,直接terminated的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • SpringBoot项目引入第三方sdk jar包的解决方案

    SpringBoot项目引入第三方sdk jar包的解决方案

    这篇文章主要介绍了SpringBoot项目引入第三方sdk jar包,个人感觉比较好的解决方案是将 jar上传到本地的maven仓库,然后通过pom依赖,引入第三方jar包,需要的朋友可以参考下
    2022-05-05
  • Java并发编程加锁导致的活跃性问题详解方案

    Java并发编程加锁导致的活跃性问题详解方案

    所谓并发编程是指在一台处理器上"同时"处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生,所以编写正确的程序很难,而编写正确的并发程序则难上加难
    2021-10-10
  • SpringBoot http请求注解@RestController原理解析

    SpringBoot http请求注解@RestController原理解析

    这篇文章主要介绍了SpringBoot http请求注解@RestController原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Springboot+Mybatis中typeAliasesPackage正则扫描实现方式

    Springboot+Mybatis中typeAliasesPackage正则扫描实现方式

    这篇文章主要介绍了Springboot+Mybatis中typeAliasesPackage正则扫描实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 一篇文章教你使用枚举来实现java单例模式

    一篇文章教你使用枚举来实现java单例模式

    本篇文章主要介绍了Java实现单例的3种普遍的模式,饿汉式、懒汉式、枚举式。具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-07-07
  • SpringMVC @NotNull校验不生效的解决方案

    SpringMVC @NotNull校验不生效的解决方案

    这篇文章主要介绍了SpringMVC @NotNull校验不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • spring Mvc配置xml使ResponseBody返回Json的方法示例

    spring Mvc配置xml使ResponseBody返回Json的方法示例

    这篇文章主要给大家介绍了关于spring Mvc配置xml使ResponseBody返回Json的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04

最新评论