当前位置:首页 > 服务端 > EasyExcel的使用方法

EasyExcel的使用方法

2022年08月05日 15:00:16服务端2

一、导入依赖

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>easyexcel</artifactId>
	<version>2.2.7</version>
</dependency>

二、编写实体类

@Data
public class DemoData {
    @ExcelProperty(value = "学生编号", index = 0)
    private Integer sno;
    @ExcelProperty(value = "学生姓名", index = 1)
    private String sname;
}

三、写入Excel

@Test
public void writeExcel() {
    //实现excel写操作
    // 写法1 JDK8+
    // since: 3.0.0-beta1
    String fileName = "F:\\online-education/student.xlsx";
    // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
    // 如果这里想使用03 则 传入excelType参数即可
    EasyExcel.write(fileName, DemoData.class).sheet("Sheet1").doWrite(getData());
}
private static List<DemoData> getData(){
    List<DemoData> list=new ArrayList<>();
    for (int i=0;i<10;i++){
        DemoData demoData = new DemoData();
        demoData.setSno(i);
        demoData.setSname("liming"+i);
        list.add(demoData);
     }
    return list;
}

四、写入Excel并以流的方式发送给前端并下载

1.编辑响应体参数

	/**
     * 导出
     *
     * @param response
     * @param data
     * @param fileName
     * @param sheetName
     * @param clazz
     * @throws Exception
     */
    public static void writeExcel(HttpServletResponse response, List<? extends Object> data, String fileName, String sheetName, Class clazz) throws Exception {
        //表头样式
        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
        //设置表头居中对齐
        headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
        //内容样式
        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
        //设置内容靠左对齐
        contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
        HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
        EasyExcel.write(getOutputStream(fileName, response), clazz).excelType(ExcelTypeEnum.XLSX).sheet(sheetName).registerWriteHandler(horizontalCellStyleStrategy).doWrite(data);
    }
	
	/**
     * 流方式响应给前端
     *
     * @param fileName
     * @param response
     * @return
     * @throws Exception
     */
    private static OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception {
        fileName = URLEncoder.encode(fileName, "UTF-8");
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf8");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
        response.setStatus(RESPONSE_SUCCESS_CODE);
        return response.getOutputStream();
    }
@PostMapping("exportExcel")
public void webWriteExcel(HttpServletResponse response) throws IOException {
         ExcelUtil.writeExcel(response, ptPartDetails, fileName, sheetName, PtPartDetail.class);
    }

五、读取Excel

编写监听类并重写所需方法

public class ExcelListener extends AnalysisEventListener<DemoData> {
    //一行一行的读取excel内容
    @Override
    public void invoke(DemoData demoData, AnalysisContext analysisContext) {
        System.out.println("数据:"+demoData);
    }
	
    //读取表头内容
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println("表头:"+ headMap);
    }

    //读取完成之后执行
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

读取Excel文件

@Test
    public void readExcel(){
        String fileName = "F:\\online-education/student.xlsx";
        EasyExcel.read(fileName,DemoData.class,new ExcelListener()).sheet().doRead();
    }

作者:__先森
来源链接:https://www.cnblogs.com/nlbz/p/15343629.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/17858.html

标签: EasyExcel
分享给朋友:

“EasyExcel的使用方法” 的相关文章

SpringBoot图文教程14—SpringBoot集成EasyExcel「上」

SpringBoot图文教程14—SpringBoot集成EasyExcel「上」

有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程...

POIEasyExcel

POI与EasyExcel 数据导出excel 数据导入程序 POI 数据加入内存再操作 消耗内存 // 工作簿 2003 65535行 Workbook workbook = new HSSFWorkbook...

EasyExcel导入导出

EasyExcel导入导出

maven依赖 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</g...

大叔问题定位分享(37)easyexcel下载有时报错NoClassDefFoundError

使用easyexcel实现excel导出功能,有时会报错 com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: Could not initialize class...

java操纵excel:easyexcel

1.导入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version&...

java使用EasyExcel操作Excel

  一、EasyExcel简介 1、EasyExcel特点 Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来...

EasyExcel导出简单使用

github地址:https://github.com/alibaba/easyexcel; 参考网址:https://alibaba-easyexcel.github.io/index.html 引入jar: <!-- 阿里巴巴 easyExcel依赖 --&...

28.EasyExcel操作excel进行读和写

28.EasyExcel操作excel进行读和写

 一、EasyExcel简介 1、Excel导入导出的应用场景 1、数据导入:减轻录入工作量 2、数据导出:统计信息归档 3、数据传输:异构系统之间数据传输 2、EasyExcel特点...

EasyExcel无法用转换器或者注解将java字段写入为excel的数值格式

EasyExcel无法用转换器或者注解将java字段写入为excel的数值格式

需求: 在用easyExcel导出报表时,碰到需要将数据转换为数值or货币格式的需求 过程: 1.首先采取转换器的形式 @Override public CellData convertToExcelData(BigDecimal bigDeci...

Excel映射到实体-easyexcel工具

Excel映射到实体-easyexcel工具

来源 项目需要把Excel进行解析,并映射到对象属性,实现类似Mybatis的ORM的效果。使用的方式是自定义注解+POI,这种方式代码复杂而且不易于维护。 easyexcel是阿里巴巴开源的一个框架,解决了字段映射问题、OOM问题、使用复杂问题等,总之是一个很方便的工具 Git...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。