一、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的标题
  • 数据:表格所有的数据获取

在这里插入图片描述
表格的数据展示
在这里插入图片描述

三、后台数据获取以及数据加工

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

五、导出后的数据展示

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值