### 功能描述:
預先設置導出模板,通過**表達式**取值,實現一些特殊樣式/風格的導出,避免編寫大量復雜的代碼,降低開發難度,提高維護效率
### 簡單的演示:
1.創建一個excel文件作為模板,設置一些特殊的樣式

2.編寫java測試類運行,代碼如下:
```
~~~
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* 模板導出
*/
public class Mobandaochu {
public static TemplateExportParams getTemplateParams(String name){
return new TemplateExportParams("D:\\JAVA\\poi\\"+name+".xlsx");
}
public static Workbook putong() {
TemplateExportParams params = getTemplateParams("putong");
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", "員工個人信息");
map.put("name", "大熊");
map.put("age", 22);
map.put("company", "北京機器貓科技有限公司");
map.put("date", "2020-07-13");
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
return workbook;
}
public static void main(String[] args) throws IOException {
Workbook workbook = putong();
File savefile = new File("D:\\JAVA\\poi");
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = new FileOutputStream("D:\\JAVA\\poi\\result.xlsx");
workbook.write(fos);
fos.close();
}
}
~~~
```
3.查看結果文件:

---------------
*由上述演示可以看出,根據模板導出就是先做好一個excel文件作為導出的模板,并且填入相應的表達式,在導出文件時,傳入具體的數據就可以導出所需文件了。*
#### 以下列舉所有表達式:
| 表達式 | 描述/示例 |
| --- | --- |
| 三目運算 | {{test ? obj:obj2}}test如果某一個字段,則該字段一定是布爾類型,如果一個表達式,如arg == 1則一定要帶有空格 |
| n: | 這個cell是數值類型 {{n:}} |
| le: | 代表長度{{le:()}} 在if/else 運用{{le:() > 8 ? obj1 : obj2}} |
| fd: | 格式化時間 {{fd:(obj;yyyy-MM-dd)}} |
| fn: | 格式化數字 {{fn:(obj;###.00)}} |
| fe: | 遍歷數據,創建row |
| !fe | 遍歷數據不創建row |
| $fe: | 下移插入,把當前行,下面的行全部下移.size()行,然后插入 |
| #fe: | 橫向遍歷|
| v\_fe: | 橫向遍歷值|
| !if: | 刪除當前列 {{!if:(test)}}|
| 單引號 | 表示常量值 '' 比如'1' 那么輸出的就是 1|
| &NULL& | 空格|
| \]\] | 換行符 多行遍歷導出|
------
#### 帶有循環,帶特殊表達式的示例:
1.創建exel模板

2.編寫代碼
```
~~~
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.*;
/**
* 模板導出
*/
public class Mobandaochu {
public static TemplateExportParams getTemplateParams(String name){
return new TemplateExportParams("D:\\JAVA\\poi\\"+name+".xlsx");
}
public static Workbook fuza() {
TemplateExportParams params = getTemplateParams("fuza");
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", "員工信息");
List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 6; i++) {
Map<String, Object> lm = new HashMap<String, Object>();
lm.put("name", "王"+i);
lm.put("age", "2"+i);
lm.put("sex", i%2==0?"1":"2");
lm.put("date",new Date());
lm.put("salary", 1000+i);
listMap.add(lm);
}
map.put("maplist", listMap);
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
return workbook;
}
public static void main(String[] args) throws IOException {
Workbook workbook = fuza();
File savefile = new File("D:\\JAVA\\poi");
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = new FileOutputStream("D:\\JAVA\\poi\\result.xlsx");
workbook.write(fos);
fos.close();
}
}
~~~
```
3.運行結果:

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