##### 2.3.7 Excel多Sheet导出
目前单Sheet和单Class的方式比较多,对于多Sheet的方式还是一片空白,这里做一下说明:
导出基本采用ExportParams 这个对象,进行参数配置; 我们需要进行多Sheet导出,那么就需要定义一个基础配置对象
~~~
public class ExportView {
public ExportView(){
}
private ExportParams exportParams;
private List<?> dataList;
private Class<?> cls;
public ExportParams getExportParams() {
return exportParams;
}
public void setExportParams(ExportParams exportParams) {
this.exportParams = exportParams;
}
public Class<?> getCls() {
return cls;
}
public void setCls(Class<?> cls) {
this.cls = cls;
}
public List<?> getDataList() {
return dataList;
}
public void setDataList(List<?> dataList) {
this.dataList = dataList;
}
public ExportView(Builder builder) {
this.exportParams = builder.exportParams;
this.dataList = builder.dataList;
this.cls = builder.cls;
}
public static class Builder {
private ExportParams exportParams=null;
private List<?> dataList=null;
private Class<?> cls=null;
public Builder() {
}
public Builder exportParams(ExportParams exportParams) {
this.exportParams = exportParams;
return this;
}
public Builder dataList(List<?> dataList) {
this.dataList = dataList;
return this;
}
public Builder cls(Class<?> cls) {
this.cls = cls;
return this;
}
public ExportView create() {
return new ExportView(this);
}
}
}
~~~
对象主要有三个属性: // 该注解配置的导出属性
1. ExportParams exportParams // 对应注解 class 实例对象的数据集合
2. List dataList // 对应注解的 class
3. Class cls
这里没有用泛型,因为多Sheet导出时,会引用到不同的注解对象;
定义基础配置的集合
~~~
public class ExportMoreView {
private List<ExportView> moreViewList=Lists.newArrayList();
public List<ExportView> getMoreViewList() {
return moreViewList;
}
public void setMoreViewList(List<ExportView> moreViewList) {
this.moreViewList = moreViewList;
}
}
~~~
最后在实现调用的方法中,对整个集合进行配置和解析
~~~
List<Map<String, Object>> exportParamList=Lists.newArrayList();
//该行主要用于获取业务数据,请根据具体的情况进行修改和调整
ExportMoreView moreView=this.getBaseTransferService().mergeExportView(templateTypeCode);
//迭代导出对象,将对应的配置信息写入到实际的配置中
for(ExportView view:moreView.getMoreViewList()){
Map<String, Object> valueMap=Maps.newHashMap();
valueMap.put(NormalExcelConstants.PARAMS,view.getExportParams());
valueMap.put(NormalExcelConstants.DATA_LIST,view.getDataList());
valueMap.put(NormalExcelConstants.CLASS,view.getCls());
exportParamList.add(valueMap);
}
//实现导出配置
modelMap.put(NormalExcelConstants.FILE_NAME,new DateTime().toString("yyyyMMddHHmmss"));
//将转换完成的配置接入到导出中
modelMap.put(NormalExcelConstants.MAP_LIST,exportParamList);
return NormalExcelConstants.JEECG_EXCEL_VIEW;
~~~
如果不是采用的MVC的方式,请将转换的配置采用以下的方式实现:
参见ExcelExportUtil
![](https://static.oschina.net/uploads/space/2017/1128/111045_9s7X_2343396.png)
- 1.前传
- 1.1前言
- 1.2 Autopoi 介绍
- 1.3 使用
- 1.4 测试项目
- 1.5 快速文档
- 1.6 示例
- 1.6.1 单表数据导出多表头示例
- 单表数据多表头导入注意bak
- 1.6.2 单表数据导出多sheet示例
- 1.6.3 excel根据模板导出
- 1.6.4 一对多导出needMerge示例
- 1.6.5 大数据导出示例
- 1.7 导出自定义选择列导出
- 2. Excel 注解版
- 2.0 @excel注解的使用
- 2.1 Excel导入导出
- 2.2 注解
- 2.3 注解导出,导入
- 2.3.1 对象定义
- 2.3.2 集合定义
- 2.3.3 图片的导出
- 2.3.4 Excel导入介绍
- 2.3.5 Excel导入小功能
- 2.3.6 图片的导入
- 2.3.7 Excel多Sheet导出
- 2.4 注解变种-更自由的导出
- 2.5 Map导入,自由发挥
- 2.6 Excel的样式自定义
- 2.7 如何自定义数据处理
- 2.8 Excel导入校验(暂不支持)
- 2.9 Excel 大批量读取
- 2.10 Excel大数据导出
- 2.11 groupname和ExcelEntity的name属性
- 3. Excel 模板版
- 3.1 模板 指令介绍
- 3.2 基本导出
- 3.3 模板当中使用注解
- 3.4 图片导出
- 3.5 横向遍历
- 4. Excel<->Html
- 4.1 Excel 的Html预览
- 4.2 html转Excel更神奇的导出
- 5. Word
- 5.1 word模板导出
- 6. PDF
- 7. Spring MVC
- 7.1 View 介绍
- 7.2 大数据导出View的用法
- 7.3 注解导出View用法
- 7.4 注解变种Map类型的导出View
- 7.5Excel模板导出View
- 7.6 PoiBaseView.render view的补救
- 8.问题归档
- 9.大数据量处理
- 10.autopoi升级4.0版本修改记录