Excel导出

项目支持导出.xlsx和.csv两种格式文件。导出数据需要在对应的数据类型实体类的属性上使用@ExportConfig标注。如:

1
2
@ExportConfig(value = "邮箱")
private String email;

上面配置表示导出email属性数据,对应的表头为“邮箱”。

对于想性别,状态等类型的属性,一般需要进行转换。比如0代表男性,1代表女性,这时候只要像下面这样配置即可:

1
2
@ExportConfig(value = "性别", convert = "s:0=男,1=女,2=保密")
private String sex;

其中s:开头表示数据进行简单的转换。

对于像时间这样的属性类型,从数据库中取出来的格式可能并不友好,需要认为的格式化。这时候我们可以自定义一个转换类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package cc.mrbird.common.util.poi.convert;

import cc.mrbird.common.util.DateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TimeConvert implements ExportConvert {
@Override
public String handler(Object val) {
try {
if (val == null)
return "";
else {
return DateUtil.formatCSTTime(val.toString(), "yyyy-MM-dd HH:mm:ss");
}
} catch (Exception e) {
return "";
}
}
}

然后在@ExportConfig注解上指明使用该转换类进行转换:

1
2
@ExportConfig(value = "创建时间", convert = "c:cc.mrbird.common.util.poi.convert.TimeConvert")
private Date crateTime;

其中c:开头表示使用自定义转换类进行数据转换。

导出结果样例:

.xlsx格式:

.csv格式:

如果您更注重表格的样式的话,.xlsx会更适合;如果在数据量较多更注重导出速度的话,.csv会更合适。


© 2017 - 2018  MrBird & Hosted by Coding Pages