栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

easyexcel指定列导出的实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

easyexcel指定列导出的实现

Springboot继承easyexcel实现指定列导出功能:

前端传递需要导出的字段值,后端根据前端的传值导出对应的字段的值到Excel

-----核心代码-----

所需依赖:

		
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
        
            mysql
            mysql-connector-java
            
        
        
        
            com.alibaba
            druid-spring-boot-starter
            1.2.6
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.4.3
        
        
            com.baomidou
            mybatis-plus
            3.3.0
        
        
        
            com.alibaba
            easyexcel
            2.1.6
        
        
        
            org.projectlombok
            lombok
        
       
        
            com.alibaba
            fastjson
            2.0.6
        

controller:

	@GetMapping("/exportExcel")
    public void exportExcel(Demo demo) {
        try {
            demoService.exportExcel(demo);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

domain

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

@Data
public class Demo  {
    @ExcelIgnore
    private int id;

    @ExcelProperty("字段0")
    private String o;

    @ExcelProperty("字段1")
    private String yi;

    @ExcelProperty("字段2")
    private String er;
}

service:

	void exportExcel(Demo demo) throws JsonProcessingException;

impl:

		public void exportExcel(Demo demo) throws JsonProcessingException {
		List demos = demoMapper.demoList();

		ObjectMapper mapper = new ObjectMapper();
		//JAVA类转化为String类型键值对
		String json = mapper.writeValueAsString(demo);
		//String转化为json
		JSONObject jsonObject= JSONObject.parseObject(json);
		//获得json所有键
		Set keys = jsonObject.keySet();
		//遍历获取所有值(用户传入的字段),并存入集合
		Set column = new HashSet();
		for (String key : keys) {
			if (jsonObject.get(key) != null){
				column.add(jsonObject.get(key).toString());
			}
		}
		//这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
		EasyExcel.write("D:\excel"+System.currentTimeMillis()+".xlsx", Demo.class)
				.includeColumnFiledNames(column).sheet("模板")
				.doWrite(demos);
	}

mapper:

	List demoList();

mapper.xml:

	
        select * from sys_demo
    
-----测试-----

此时传入的值中,yi,er的值为对应的字段名

点击导出,导出成功

去导出的路径查看文件

打开即可看到,是我们想要的样子

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020410.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号