java多表头导出excel表格_【每日一点】1. Java如何实现导出Excel单表头或多表头

本文介绍如何使用Java的POI库导出带有2行表头的Excel文件,适用于后台项目中多表头的Excel导出需求。通过创建多行表头并合并单元格来实现,提供具体的代码实现和测试案例。
摘要由CSDN通过智能技术生成

一、背景

在后台项目中,经常会遇到将呈现的内容导出到Excel的需求,通过都是导出单个表头的Excel文件,如果存在级联关系的情况下,也就需要导出多表头的场景。今天这篇文章就是分享导出Excel单表头或多表头的实现,目前实现方案仅支持2行表头场景。如有更复杂的3行表头、4行表头复杂需求可以自行实现。

二、实现思路

1. 借助POI包实现表头的写入。每个表头其实就是一行,如果是多个表头,无非就是将写多行表头,然后将需要合并的表头进行合并,借助POI的函数为addMergedRegion。

2. 将导出数据进行转化为一个集合,循环写入每行数据。

三、实现代码

3.1 pom引入

1.8

3.17

1.3.2

org.springframework.boot

spring-boot-starter-aop

org.springframework.boot

spring-boot-starter-validation

org.mybatis.spring.boot

mybatis-spring-boot-starter

${mybatis.version}

mysql

mysql-connector-java

runtime

org.projectlombok

lombok

true

org.springframework.boot

spring-boot-starter-test

test

org.apache.poi

poi-ooxml

${poi.version}

org.apache.poi

poi

${poi.version}

View Code

3.2 Java代码实现

@Getter

@Setter

public class ExcelHelper {

/**

* 表格标题

*/

private String title;

/**

* 单元格宽度

*/

private int colWidth = 20;

/**

* 行高度

*/

private int rowHeight = 20;

private HSSFWorkbook workbook;

/**

* 表头样式

*/

private HSSFCellStyle headStyle;

/**

* 主体样式

*/

private HSSFCellStyle bodyStyle;

/**

* 日期格式化,默认yyyy-MM-dd HH:mm:ss

*/

private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

/**

* Constructor

* @param title

*/

public ExcelHelper(String title){

this.title = title;

workbook = new HSSFWorkbook();

init();

}

/**

* Constructor

* @param title

* @param colWidth

* @param rowHeight

*/

public ExcelHelper(String title, int colWidth, int rowHeight){

this.colWidth = colWidth;

this.rowHeight = rowHeight;

this.title = title;

workbook = new HSSFWorkbook();

init();

}

/**

* Constructor

* @param title

* @param colWidth

* @param rowHeight

* @param dateFormat

*/

public ExcelHelper(String title, int colWidth, int rowHeight, String dateFormat) {

this.title = title;

this.colWidth = colWidth;

this.rowHeight = rowHeight;

workbook = new HSSFWorkbook();

sdf = new SimpleDateFormat(dateFormat);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值