首页 > 编程语言 >Java生成Excel自定义导出合并(多级表头)

Java生成Excel自定义导出合并(多级表头)

时间:2022-11-01 20:35:40浏览次数:48  
标签:Java 自定义 newArrayList CollUtil writer List hutool 表头 import

一、糊涂工具包

1.导入依赖(注:导入的依赖可能会和poi依赖包冲突,导致项目启动不了,我这里poi-ooxml依赖包用的4.1.2版本,可以解决冲突问题)

<!--糊涂工具包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.16</version>
</dependency>

2.生成样式

 

 

3.代码实例

package test;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.*;

@SpringBootTest
public class Demo2 {

@Test
public void test() {
List<String> row1 = CollUtil.newArrayList("aa", "", "", "", "ee", "ff");
List<String> row2 = CollUtil.newArrayList("", "bb1", "", "", "ee1", "ff1");
List<String> row3 = CollUtil.newArrayList("", "", "cc2", "", "ee2", "ff2");
List<String> row4 = CollUtil.newArrayList("aa3", "", "", "", "ee3", "ff3");
List<String> row5 = CollUtil.newArrayList("", "", "", "bb4", "ee4", "ff4");
List<List<String>> rows = CollUtil.newArrayList(row1, row2, row3, row4, row5);

//通过工具类创建writer
ExcelWriter writer = ExcelUtil.getWriter("d:/writeTest1.xlsx");
//通过构造方法创建writer
//ExcelWriter writer = new ExcelWriter("d:/writeTest.xls");

//跳过前2行
writer.passCurrentRow();
writer.passCurrentRow();

//合并单元格后的标题行,使用默认标题样式
writer.merge(0, 1, 0, 3, "表格1", true);
writer.merge(0, 1, 4, 4, "表格2", true);
writer.merge(0, 1, 5, 5, "表格3", true);
//一次性写出内容,强制输出标题
writer.write(rows, true);
//关闭writer,释放内存
writer.close();
}

}

 

 

 

参考文档

官方:https://www.hutool.cn/docs/#/poi/Excel%E7%94%9F%E6%88%90-ExcelWriter
相关文档:https://blog.csdn.net/javaFhx/article/details/124480453

 

标签:Java,自定义,newArrayList,CollUtil,writer,List,hutool,表头,import
From: https://www.cnblogs.com/wj123bk/p/16849031.html

相关文章

  • day23 JDBC(Java Database Connection)连接 与 通配符与插入返回主键
    JDBC配置connector的jar包1.项目下新建lib文件夹2.将mysql-connector-java-版本号.jar复制到lib目录下3.右键项目名,选择Properties选项4.点击AddJARS...,选中刚复制的j......
  • Java多线程(7):JUC(上)
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~前面把线程相关的生命周期、关键字、线程池(ThreadPool)、ThreadLocal、CAS、锁和AQS都讲完了,现在就剩下怎么来用多线程了。......
  • 如何用 JavaScript 编写你的第一个单元测试
    测试代码是确保代码稳定的第一步。能做到这一点的最佳方法之一就是使用单元测试,确保应用程序中的每个较小的功能都按应有的方式运行——尤其是当应用程序接收到极端或无效输......
  • Java学习笔记day2--循环结构
    **循环结构包括四个部分:初始化部分循环条件部分循环体部分迭代部分1>for循环for(初始化部分;循环条件部分;迭代条件......
  • JavaScript对象Date和JavaScript对象Math
    4.Date:日期对象1.创建:vardate=newDate();2.方法:toLocaleString():返回当前dat......
  • Java学习笔记day2——循环结构综合例题(1个)
    //循环语句综合例题/*例题1:从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为零时,结束程序。*/......
  • Java学习笔记day2--分支结构之switch
    /*switch(表达式){case常量1:语句1;//break;case常量2:语句2;//break;……default:语句;//break;说明:1.按......
  • java多态的案例
    classAnimal{intage=100;//如果父类中没有call方法,那么子类中也不能调用该方法,编译时会出错publicvoidcall(){System.out.println("动物再......
  • Java读取共享文件夹下面的文件(利用smb协议)
    一、开启smb协议1.1控制面板->程序->启用或关闭window功能->smb1.0二、设置共享文件2.1选择你想要共享的文件夹设置everyone或者指定的用户授权给某个用户。需要密......
  • 最常用的JavaScript数组方法
    数组在我们开发中是最容易见到的,比如我们的全国地理坐标数据,接口返回的json数据中也会有很多数组数组中,我们常用的数组方法有数组遍历,根据索引值获取数组值,以及转换......