Excel神办公—【三】使用EasyExce指定写入列&复杂头写入
hello,你好呀,我是灰小猿!一个超会写bug的程序猿!
前两篇文章和大家分享了有关使用easyexcel技术实现eaxcel简单读写的操作,总结一句话就是“简直不要太简洁!”.
所以今天这一篇文章,我就继续和大家分享一些有关于使用easyexcel进行数据导出时的操作。体会easyexcel的强大魅力。\
导入所需依赖
在pom文件中导入easyexcel所需的依赖。
<!--poi依赖03版本-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<!--poi依赖07版本-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<!--easyexcel依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
一、根据参数只导出指定列
根据参数只导出指定列的作用就是,如果我们的数据对象中的元素属性比较多,但是在导出到excel的时候,我们又不想要导出全部属性列,那么我们就可以指定只导出哪些列,或者指定哪些列不导出。数据对象如下:
/**
* 基本数据demodata
*/
@Data
public class DemoData {
@ExcelProperty(value = "字符串标题")
private String stringTitle;
@ExcelProperty(value = "时间标题")
private Date dateTitle;
@ColumnWidth(50)
@ExcelProperty(value = "数字标题")
private int doubleTitle;
}
指定不包含哪些列
指定在导出时不包含哪些列其实是比较简单的,我们只需要写入一个set集合,在其中写入不包含的属性名。之后将这个set集合作为参数传入即可。代码如下:
/**
* 根据参数在导出时不包括指定列
*/
public void excludeColumnWrite() {
log.info("根据参数在导出时不包括指定列~~~");
// 存储不包含的那些列的列名属性
Set<String> excludeColumnNames = new HashSet<String>();
excludeColumnNames.add("dateTitle");
EasyExcel.write(FILEPATH + "testExcel_1.xlsx", DemoData.class)
// 指定在导出时不包括哪些列
.excludeColumnFiledNames(excludeColumnNames)
.sheet("测试表1")
.doWrite(demoData);
log.info("导出成功~~~");
}
效果如下:
指定只包括哪些列
指定只包括哪些列的操作和指定不包括哪些列的操作一样,我们需要给includeColumnFiledNames()中传入需要指定写入的列的set集合即可。 具体操作看下面的实例:
/**
* 根据参数在导出时只包含指定列
*/
public void includeColumnWrite() {
log.info("根据参数在导出时只包含指定列~~~");
// 存储只包含的那些列的列名属性
Set<String> includeColumnNames = new HashSet<String>();
includeColumnNames.add("dateTitle");
// 数据写入excel
EasyExcel.write(FILEPATH + "testExcel_1.xlsx", DemoData.class)
// 指定在导出时只包括哪些列
.includeColumnFiledNames(includeColumnNames)
.sheet("测试表1")
.doWrite(demoData);
log.info("导出成功~~~");
}
效果如下:
二、复杂头写入&合并表头
通常我们在写入Excel的时候会遇到的一种情况就是需要对部分表头列进行合并,那么这个时候就需要用到复杂头的写入。在easyexcel中对于复杂头的写入,可以直接使用注解的形式。
例如我们要将“字符串标题”,“时间标题”,“数字标题”在上方合并成“主标题”,
那么我们只需要在数据对象的@ExcelProperty注解中指定即可。代码如下:
/**
* 复杂头写入,
* 比如主标题、合并单元格等操作
*/
public class ComplexHeadData {
@ExcelProperty({"主标题","字符串标题"})
private String stringData;
@ExcelProperty({"主标题","时间标题"})
private Date date;
@ExcelProperty({"主标题","数字标题"})
private double doubleData;
}
测试实例:
/**
* 复杂头写入
*/
public void complexHeadWrite() {
EasyExcel.write(FILEPATH + "testExcel_w1.xlsx", ComplexHeadData.class)
.sheet("测试1")
.doWrite(demoData);
}
效果如下:
以上就是使用easyexcel技术来操作Excel都两种基本操作,之后我们在写入数据到Excel的时候就会,使用注解的方式就会更加便捷。
觉得不错记得点赞关注哟!之后继续和大家分享easyexcel的实用小技巧。
我是灰小猿,我们下期见!
- 点赞
- 收藏
- 关注作者
评论(0)