springboot使用EasyExcel生成Excel文件

pom依赖:

 <!-- easyExcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.0.5</version>
        </dependency>

实体类(向Excel文件中导入的列名):

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

@Data
public class PrizeDo {

    @ExcelProperty("奖项名")
    private String name;
    @ExcelProperty("奖项编号")
    private String number;

    public PrizeDo() {
    }

    public PrizeDo(String name, String number) {
        this.name = name;
        this.number = number;
    }

}

ExcelUtils:

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.hafu.edu.teachingmanagementsystem.entity.PrizeDo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public class ExcelUtils {
    /**
     *  导出Excel
     * @param response 返回对象
     * @param list  Excel表中的记录
     */
    public static void writeExcel(HttpServletResponse response, List<PrizeDo> list) throws IOException {

        ExcelWriter excelWriter= EasyExcel.write(response.getOutputStream()).build();
//        定义工作表对象
        WriteSheet sheet=EasyExcel.writerSheet(0,"sheet").head(PrizeDo.class).build();
//        向Excel文件中写入数据
        excelWriter.write(list,sheet);
//        关闭输出流
        excelWriter.finish();
    }
}

controller:

/**
     * 多奖项下载到Excel文件
     * @author lt
     * 2022/2/15
     */
    @GetMapping("/testExcel")
    public void testExcel(HttpServletResponse response) throws IOException {
        List<PrizeDo> list=new ArrayList<>();
        list.add(new PrizeDo("优秀奖","001"));
        list.add(new PrizeDo("参与奖","002"));
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("Content-Disposition","attachment;filename="+"test.xlsx");//或者文件名后缀为xlsx
        ExcelUtils.writeExcel(response,list);
    }

成功:

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: EasyExcel是一个Java库,可以用来生成Excel文件。它提供了简单易用的API,可以快速地生成Excel文件,并支持多种数据格式的导入和导出。EasyExcel还支持大数据量的导入和导出,可以有效地提高Excel文件生成和处理效率。使用EasyExcel可以方便地生成各种格式的Excel文件,包括常见的xls和xlsx格式,同时还支持自定义样式和格式。 ### 回答2: EasyExcel是一款基于Java开发的Excel操作工具,提供了简易易用的API,可以快速生成Excel文件、读取Excel数据以及Excel数据导出等功能。下面就详细介绍下EasyExcel生成Excel文件使用方法。 首先需要创建一个ExcelWriter对象,该对象可以通过流或文件的方式进行输出。创建ExcelWriter对象后,可以使用write方法分别写入标题行和数据行,最后使用finish方法进行文件输出。 具体代码如下: ``` //创建ExcelWriter对象 ExcelWriter excelWriter = EasyExcel.write(fileName).build(); //写入标题行 WriteSheet writeSheet = EasyExcel.writerSheet(0, "Sheet1").build(); excelWriter.write(getHead(),writeSheet); //写入数据行 writeSheet = EasyExcel.writerSheet(1, "Sheet2").build(); excelWriter.write(getDataList(), writeSheet); //输出文件 excelWriter.finish(); ``` 其中getHead()和getDataList()方法分别用于获取标题行和数据行的数据源。 EasyExcel除了可以生成简单的Excel文件外,还支持复杂的Excel文件生成,比如设置单元格样式、合并单元格等。可以通过使用WriteCellStyle和WriteSheet等API进一步进行操作。 总的来说,EasyExcel是一款十分简单易用的Excel操作工具,既支持简单的Excel文件操作,也支持复杂的Excel文件生成,适用于各种企业业务场景。 ### 回答3: EasyExcel是一个用于生成Excel文件Java库。相比直接使用POI来生成Excel文件EasyExcel更加简单易用,它是基于注解的方式来定义Excel表头和数据模型的,同时支持大数据量的读写操作。 EasyExcel支持生成Excel文件类型包括:XLS、XLSX、CSV,同时支持多线程,在处理大数据量时会更加高效。EasyExcel还支持灵活的数据转换(例如日期、数字、枚举类型等),同时支持自定义样式。 EasyExcel具有以下特点: 1. 短小精悍:EasyExcel库本身非常小巧,仅仅只有几十个类,非常易于使用和维护。 2. 使用简单:EasyExcel可以通过简单的注解配置来定义表头和数据模型,只需要通过一行代码就可以完成Excel生成。 3. 高效处理大数据量:EasyExcel支持多线程处理,可以优化大数据量的读写效率,同时还支持异步回调,对于读取大批量数据时可以提高效率。 4. 灵活的数据转换:EasyExcel支持灵活的数据转换,可以将Excel中的日期、数字和枚举类型等进行转换。 5. 自定义样式:EasyExcel支持自定义样式,可以设置单元格的背景颜色、字体、边框等样式。 总之,EasyExcel是一个非常方便高效的Excel文件生成库,它可以帮助Java开发者更加快捷地生成Excel表格,并支持大批量数据的读写操作,是Java程序员的Excel文件生成利器。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值