文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【java】EasyPoi导出导入(合并单元格)

2023-09-14 08:06

关注

EasyPoi导出导入

一.引入EasyPoi依赖

 <dependency>         <groupId>cn.afterturngroupId>         <artifactId>easypoi-baseartifactId>         <version>3.2.0version>     dependency>      <dependency>         <groupId>cn.afterturngroupId>         <artifactId>easypoi-webartifactId>         <version>3.2.0version>     dependency>     <dependency>         <groupId>cn.afterturngroupId>         <artifactId>easypoi-annotationartifactId>         <version>3.2.0version>     dependency>

二.导出示例(合并单元格)

1.导出模板

在这里插入图片描述

2.实体类加注释

@Excel(name = "真爱粉", width = 15)private String heizi;@Excel(name = "唱", width = 15)private String chang;@Excel(name = "跳", width = 15)private String tiao;@Excel(name = "rap", width = 15)private String rap;@Excel(name = "篮球", width = 15)private String qiu;

3.编写逻辑

  public void exportXls(KunKun ikun, HttpServletResponse response) {        //查询导出的信息列表        List<KunKun> ikuns = kunKunMapper.allList(ikun);                //存放excel的表头 ExcelExportEntity是EasyPoi提供的excel属性实体类        List<ExcelExportEntity> entityList = new ArrayList<ExcelExportEntity>();                //表头        ExcelExportEntity title = new ExcelExportEntity("序号","num");        entityList.add(title);        //真爱粉对应key,heizi对应的是表头也是你实体类的字段        title = new ExcelExportEntity("真爱粉","heizi");        entityList.add(title);        //合并坤坤单元格        ExcelExportEntity groupOne = new ExcelExportEntity("坤坤", "kunkun");        List<ExcelExportEntity> exportEntitieOne = new ArrayList<>();        exportEntitieOne.add(new ExcelExportEntity("唱","chang"));        exportEntitieOne.add(new ExcelExportEntity("跳","tiao"));        exportEntitieOne.add(new ExcelExportEntity("rap","rap"));        exportEntitieOne.add(new ExcelExportEntity("篮球","qiu"));        groupOne.setList(exportEntitieOne);        entityList.add(groupOne);        //存放全部的数据        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();        //定义序号        int num = 1;        for (KunKun ikun: ikuns) {            //存放坤坤表头下的数据           List<Map<String, Object>> listOne = new ArrayList<Map<String, Object>>();            Map<String, Object> map = new HashMap<>();            Map<String, Object> mapOne = new HashMap<>();            map.put("num",num++);            map.put("heizi",ikun.getHeizi());            mapOne.put("chang",ikun.getChang());            mapOne.put("tiao",ikun.getTiao());            mapOne.put("rap",ikun.getRap());            mapOne.put("qiu",ikun.getQiu());            listOne.add(mapOne);            map.put("kunkun",listOne);            list.add(map);        }        //获取当前时间        String date = LocalDate.now().toString();        String fileName = date + "坤坤记录导出";        //ExcelExportUtil是EasyPoi提供的导出工具类。        //参数对应:导出文件名字、表头、对应的数据        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(fileName, "sheet1"), entityList, list);        try {            workbook.write(response.getOutputStream());        } catch (IOException e) {            e.printStackTrace();        }finally {            try {                workbook.close();                response.getOutputStream().close();            } catch (IOException e) {                e.printStackTrace();            }        }    }

二.导入示例

public Result<?> importExcel(MultipartFile file) {        String extNane = FileUtil.getSuffix(file.getOriginalFilename());        if (!"xls,xlsx".contains(extNane)){            return Result.error("请选择Excel文件!");        }        ExcelReader reader = null;        try {            reader = ExcelUtil.getReader(file.getInputStream());        } catch (IOException e) {            e.printStackTrace();        }        //从第2行开始读取数据(0开始计数)        List<List<Object>> readAll = reader.read(2);        if (CollectionUtils.isEmpty(readAll)){            return Result.error("数据为空,请正确填写数据后再上传!");        }        //存放导入的数据        List<KunKun> insertList = new ArrayList<>();        try{            readAll.forEach(e ->{                KunKun ikun = new KunKun();                //从1开始取,因为0列是序号列                //真爱粉                fuelSupplyStore.setHeizi(ObjectUtil.isNull(e.get(1)) ? null : ObjectUtil.toString(e.get(1)).trim());                //唱                fuelSupplyStore.setChang(ObjectUtil.isNull(e.get(2)) ? null : ObjectUtil.toString(e.get(2)).trim());                //跳                fuelSupplyStore.setTiao(ObjectUtil.isNull(e.get(3)) ? null : ObjectUtil.toString(e.get(3)).trim());                //rap                fuelSupplyStore.setRap(ObjectUtil.isNull(e.get(4)) ? null : ObjectUtil.toString(e.get(4)).trim());                //篮球                fuelSupplyStore.setQiu(ObjectUtil.isNull(e.get(5)) ? null : ObjectUtil.toString(e.get(5)).trim());        }catch (Exception ex){            return Result.error("导入失败");        }        //批量新增        kunKunMapper.saveBatch(insertList);        return Result.OK("导入成功");    }

来源地址:https://blog.csdn.net/twotwo22222/article/details/131049342

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯