一、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;
}