easyPOI 简单使用小结(Map导出方式)
创建实例
LinkedList<ExcelExportEntity> entity = new LinkedList<>();
Excel列名与数据名对应关系
entity.add(new ExcelExportEntity("EXCEL列名1", "list中的数据key值")); //第一列
entity.add(new ExcelExportEntity("EXCEL列名2", "list中的数据key值"));//第二列
...
entity.add(new ExcelExportEntity("EXCEL列名n", "list中的数据key值"));//第n列
意思就是要把数据 list 中的哪个值放到 EXCEL 对应的哪个列上
方法参数说明 :
new ExcelExportEntity(String,String)
(EXCEL列名, 数据名)new ExcelExportEntity(String,String,int)
(EXCEL列名, 数据名,列宽)
设置表信息
ExportParams params = new ExportParams("表名(表头)", "sheet名", ExcelType.XSSF);
modelMap.put(MapExcelConstants.MAP_LIST, "数据list");
modelMap.put(MapExcelConstants.ENTITY_LIST, entity);
modelMap.put(MapExcelConstants.PARAMS, params);
modelMap.put(MapExcelConstants.FILE_NAME, "Excel名称");
PoiBaseView.render(modelMap, request, response, MapExcelConstants.EASYPOI_MAP_EXCEL_VIEW);
多sheet导出
- 创建放多sheet信息的list
List<Map<String, Object>> exportParamList = new ArrayList<Map<String, Object>>();
- 创建多个entity
LinkedList<ExcelExportEntity> entity = new LinkedList<>();
- 创建多个param
ExportParams params = new ExportParams("表名(表头)", "sheet名", ExcelType.XSSF);
- 创建表信息和放表信息的 map,并把表信息放到map中及把map放到第一条的list中
–valueMap.put(NormalExcelConstants.PARAMS,params);
–valueMap.put(NormalExcelConstants.DATA_LIST,'对应的数据list');
–valueMap.put(NormalExcelConstants.CLASS,'对应的entity');
- 添加EXCEL名
modelMap.put(MapExcelConstants.FILE_NAME, "excel名");
- 将第一条的list放到modelMap
modelMap.put(NormalExcelConstants.MAP_LIST,exportParamList);
- 创建导出实例
–EasypoiSingleExcelViewSelf esev = new EasypoiSingleExcelViewSelf();
–esev.renderMergedOutputModel(modelMap,request,response);
导出的数据格式
注 : 导出的数据, 如默认导出的是String类型, 到了EXCEL中就会不能使用公式进行计算
将 “Excel列名与数据名对应关系” 中的 new ExcelExportEntity()
换成以下方法或整合到导出方法中
/**
* 导出Excel中的数字格式变更 (文本变更为数字)
* @param name
* @param key
* @return
*/
private static ExcelExportEntity StringToNumber(String EXCEL列名1,String list中的数据key值){
ExcelExportEntity name2 = new ExcelExportEntity("EXCEL列名1", "list中的数据key值");
/**
* 默认是 STRING_TYPE ,文本格式
* STRING_TYPE (1) 文本格式
* DOUBLE_TYPE (10) 数字格式
* IMAGE_TYPE (3) 图片格式
*/
name2.setType(BaseEntityTypeConstants.DOUBLE_TYPE);
return name2;
}