一、gradle配置
compile group: 'cn.afterturn', name: 'easypoi', version: '4.0.0'
compile group: 'cn.afterturn', name: 'easypoi-base', version: '4.0.0'
compile group: 'cn.afterturn', name: 'easypoi-annotation', version: '4.0.0'
compile group: 'cn.afterturn', name: 'easypoi-web', version: '4.0.0'
二、前台页面数据获取
按照需求我需要读取的是(前台的获取代码就 不贴出来,本人使用的是extjs)
- 列名:excel的类名
- 数据字段名:对应的数据库字段名
- 文件名:excel的文件名
- 文件标题:excel的标题
- 数据:表格所有的数据获取
表格的数据展示
三、后台数据获取以及数据加工
public String exportExcel(Map<String,Object> map) throws Exception {
//表格中的数据获取
List<Map<String,Object>> list= (List<Map<String, Object>>) map.get("griddata");
//日期格式处理
for (Map<String,Object> map1: list){
Long time= (Long) map1.get("create_date");
Date date = new Date(time);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(date);
map1.put("create_date",dateString);
}
//定义 excel 导出工具类集合
List<ExcelExportEntity> colList = new ArrayList<ExcelExportEntity>();
// 构造对象等同于@Excel
//表单中表格的数据获取
List<Map<String,Object>> formlist = (List<Map<String, Object>>) map.get("data");
for (int i=0;i<formlist.size();i++){
ExcelExportEntity j = new ExcelExportEntity((String) formlist.get(i).get("columnname"), formlist.get(i).get("sjkzdm"),30);
j.setNeedMerge(true);
colList.add(j);
}
//文件名
String wjm= (String) map.get("wjm");
//文件路径
String file="D:\\home\\"+wjm+".xlsx";
//文件标题
String wjbt= (String) map.get("wjbt");
String res= ToExcel.exportExcel(file,null,colList,list,wjbt);
return res;
四、工具类ToExcel
//表格中的数据获取
List<Map<String,Object>> list= (List<Map<String, Object>>) map.get("griddata");
//日期格式处理
for (Map<String,Object> map1: list){
Long time= (Long) map1.get("create_date");
Date date = new Date(time);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(date);
map1.put("create_date",dateString);
}
//定义 excel 导出工具类集合
List<ExcelExportEntity> colList = new ArrayList<ExcelExportEntity>();
// 构造对象等同于@Excel
//表单中表格的数据获取
List<Map<String,Object>> formlist = (List<Map<String, Object>>) map.get("data");
for (int i=0;i<formlist.size();i++){
ExcelExportEntity j = new ExcelExportEntity((String) formlist.get(i).get("columnname"), formlist.get(i).get("sjkzdm"),30);
j.setNeedMerge(true);
colList.add(j);
}
//文件名
String wjm= (String) map.get("wjm");
//文件路径
String file="D:\\home\\"+wjm+".xlsx";
//文件标题
String wjbt= (String) map.get("wjbt");
String res= ToExcel.exportExcel(file,null,colList,list,wjbt);
return res;a
public static String exportExcel(String file, Class<?> pojoClass, List<ExcelExportEntity> excelParams,
Collection<?> dataSet,String wjbt) throws Exception {
String result;
Workbook workbook;
//判断实体类与工具类
if (pojoClass!=null){
workbook = ExcelExportUtil.exportExcel(new ExportParams(wjbt,"表格测试"), pojoClass,dataSet);
}else{
workbook = ExcelExportUtil.exportExcel(new ExportParams(wjbt,"表格测试"), excelParams,dataSet);
}
File f=new File(file);
//检查文件是否存在
if (f.exists()){
result="文件已存在,请重新选择路径或者重新命名";
}else{
FileOutputStream fos = new FileOutputStream(file);
workbook.write(fos);
fos.close();
result="文件导出成功";
}
return result;
}