天天看點

一、Easypoi導出Excel-普通導出實作(gradle)

一、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的标題
  • 資料:表格所有的資料擷取
一、Easypoi導出Excel-普通導出實作(gradle)

表格的資料展示

一、Easypoi導出Excel-普通導出實作(gradle)

三、背景資料擷取以及資料加工

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

五、導出後的資料展示

一、Easypoi導出Excel-普通導出實作(gradle)