##### 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

- 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版本修改記錄