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

这篇具有很好参考价值的文章主要介绍了【java】EasyPoi导出导入(合并单元格)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.引入EasyPoi依赖

	<!-- 导入导出的工具包,可以完成Excel导出,导入,Word的导出,Excel的导出功能 -->
 	<dependency>
         <groupId>cn.afterturn</groupId>
         <artifactId>easypoi-base</artifactId>
         <version>3.2.0</version>
     </dependency>

	 <!--耦合了spring-mvc 基于AbstractView,极大的简化spring-mvc下的导出功能 -->
     <dependency>
         <groupId>cn.afterturn</groupId>
         <artifactId>easypoi-web</artifactId>
         <version>3.2.0</version>
     </dependency>

	<!-- 基础注解包,作用与实体对象上,拆分后方便maven多工程的依赖管理 -->
     <dependency>
         <groupId>cn.afterturn</groupId>
         <artifactId>easypoi-annotation</artifactId>
         <version>3.2.0</version>
     </dependency>

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

1.导出模板

easypoi合并单元格,java,excel,开发语言文章来源地址https://www.toymoban.com/news/detail-622208.html

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("导入成功");
    }

到了这里,关于【java】EasyPoi导出导入(合并单元格)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【业务功能篇47】Springboot+EasyPoi 实现Excel 带图片列的导入导出

    SpringBoot整合EasyPoi实现Excel的导入和导出(带图片)_51CTO博客_springboot easypoi导出excel

    2024年02月16日
    浏览(34)
  • poi+easypoi实现表头多层循环,多级动态表头、树形结构动态表头、纵向合并单元格、多个sheet导出

    我前面也写过几篇关于easypoi复杂表格导出的文章,什么一对多纵向合并、多级表头、动态表头、多个sheet等,这些我写那几篇文章之前做项目都遇到过,并且都实现出来了。 感兴趣的可以看看: easypoi多级表头、多个sheet导出,动态导出列、动态更改表头 easypoi一对多,纵向合

    2024年02月08日
    浏览(30)
  • 【Java Easypoi & Apache poi】 Word导入与导出

            如果这里造成了读取resources下的文件返回前端乱码问题:除了HttpServletResponse响应中设置字体问题,还有可能是因为在编译期文件就已经乱码了,所以需要在pom.xml中增加以下配置。

    2024年02月10日
    浏览(44)
  • 【Easypoi & Apache poi】 Java后端 Word导入与导出

            如果这里造成了读取resources下的文件返回前端乱码问题:除了HttpServletResponse响应中设置字体问题,还有可能是因为在编译期文件就已经乱码了,所以需要在pom.xml中增加以下配置。

    2024年02月11日
    浏览(37)
  • 使用EasyPoi导出Excel

        注意日期类型 注解内要加上: exportFormat = \\\"yyyy-MM-dd hh:mm:ss\\\"   属性字段 属性值 @TableField 这个字段代表数据库表的字段 @Excel name代表导出Excel列名称 @Excel orderNum代表Excel列排在第几列 @Excel replace一般数据库存的性别例如0和1,导出的值0展示为男性,女展示为女性   直接调用

    2023年04月15日
    浏览(34)
  • spring boot 整合EasyPoi导入导出,下载模版功能

    name:Excel中的列名; width:指定列的宽度; needMerge:是否需要纵向合并单元格; format:当属性为时间类型时,设置时间的导出导出格式; desensitizationRule:数据脱敏处理,3_4表示只显示字符串的前3位和后4位,其他为*号; replace:对属性进行替换; suffix:对数据添加后缀。

    2024年02月11日
    浏览(29)
  • 使用EasyPoi实现Excel的按模板样式导出

    1690342020350导出测试.xlsx 如下 #fe 使用#fe命令可以实现集合数据的横向拓展,比如模板代码是 导出的excel里面就会显示会自当前列,向右拓展,效果可参见下面的导出文件截图 v_fe 使用v_fe命令可以实现不固定列的横向遍历,比如模板代码是 分数 ID {{#fe:maths t.score t.id}} 这种情况

    2024年02月15日
    浏览(35)
  • springboot项目利用easypoi导入导出(包括一对多导出的动态列选择,以及普通导入)

    因为项目只涉及到一对多的导出,以及普通的导入,所以,本文只会涉及这方面的使用 导入的时候,有校验,如果有错误数据,就会返回错误数据的所在行,以及错误信息(如果需要返回错误信息的所在的那几行数据以及错误信息的excel文件的话,可以看看第三个参考文章,

    2023年04月21日
    浏览(27)
  • 导入Excel数据【EasyPoi实战系列】- 第480篇

    历史文章( 文章 累计480+) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 【EasyPoi实战系列】Spring Boot使用EasyP

    2024年02月16日
    浏览(25)
  • 模板文件导出Excel【EasyPoi实战系列】- 第478篇

    ​历史文章( 文章 累计470+) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 【EasyPoi实战系列】Spring Boot使用Ea

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包