在使用easypoi導出excel有涉及到sum的使用的,一般使用sum都是為了統計數值,并且是循環當中使用的。
EasyPoi支援的指令以及作用
- 空格分割
- 三目運算 {{test ? obj:obj2}}
- 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& 空格
- ]] 換行符 多行周遊導出
- sum: 統計資料
對于使用模闆的形式,在模闆檔案中的使用書寫,需注意的是進行sum使用時,是統計周遊的那幾行的資料,是以,需将sum包含在裡面。
導出的結果:
代碼:
public R export(InvoiceShowVo keyVo, HttpServletResponse response) {
try {
InvoiceInfoVo info = invoicePayService.getInvoiceList(keyVo);
String fileName = keyVo.getInvoiceNo() + "賬單支付(" + DateUtil.now() + ")";
Map<Integer, Map<String, Object>> sheetMap = new HashMap<>(2);
//第一頁
Map<String, Object> sheet1 = new HashMap<>(1);
sheet1.put("info", info);
sheetMap.put(0, sheet1);
//第二頁
Map<String, Object> sheet2 = new HashMap<>(2);
sheet2.put("details", details);
sheet2.put("info", info);
sheetMap.put(1, sheet2);
//導出模版
TemplateExportParams params = new TemplateExportParams("excel/invoice/exportPayTemp.xls", 0, 1);
params.setStyle(ExcelStyleType.BORDER.getClazz());
ExcelUtil.exportExcelSheets(params, sheetMap, fileName, response);
} catch (Exception e) {
return R.fail(e);
}
return null;
}
實體:
public class InvoiceInfoVo {
/**
*
*/
private Invoice invoice;
/**
*
*/
private Map<String, String> payee;
/**
*
*/
private List<InvoiceCntrInfo> cntrInfoList;
/**
*
*/
private List<InvoiceCostInfo> costInfoList;
}