使用easyexcel快速导出xlsx表格(简洁、高效、易懂)

本文介绍如何使用EasyExcel进行Excel文件的导入导出操作。包括依赖引入、实体类注解配置、控制器层接口设置、Service层导出方法编写及最终下载表格等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Easyexcel是一款非常好用的POI框架,是为了让开发者快速的实现excel,word,pdf的导入导出,基于Apache poi基础上的一个工具包。

  • 基于注解的导入导出,修改注解就可以修改Excel
  • 支持常用的样式自定义
  • 基于map可以灵活定义的表头字段
  • 支持一对多的导出,导入
  • 支持模板的导出,一些常见的标签,自定义标签
  • 支持HTML/Excel转换
  • 支持word的导出,支持图片,Excel

    目  录

一、引入依赖

二、在实体类中添加注解

三、controller层增加导出接口

四、在serviceImpl层编写导出表格方法

五、访问接口,下载表格



一、引入依赖


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

二、在实体类中添加注解

@Data
@HeadRowHeight(30)  //表头行高
@ContentRowHeight(15)  //内容行高
@ColumnWidth(18)  //列宽
@ContentFontStyle(fontHeightInPoints = (short) 12) //字体大小
@ApiModel(value = "ExportEntity", description = "ExportEntity")
public class ExportEntity {

  /** id */
  @ApiModelProperty(value = "id")
  @ExcelProperty("id")
  private Long id;
  /** 名称 */
  @ApiModelProperty(value = "名称")
  @ExcelProperty("名称")
  private String name;
  /** 年龄 */
  @ApiModelProperty(value = "年龄")
  @ExcelProperty("年龄")
  private Integer age;
  /** 性别 */
  @ApiModelProperty(value = "性别")
  @ExcelIgnore
  private String sex;
}

默认所有字段都会和excel去匹配,使用@ExcelIgnore注解会忽略该字段。

@ExcelProperty:指定当前字段对应 excel 中的那一列。可以根据名字或者Index去匹配,默认第一个字段就是index=0,以此类推。⚠️要么全部不写,要么全部用index,要么全部用名字去匹配,切勿混合使用。

其他表格样式注解:

@HeadRowHeight(30)  表头行高
@ContentRowHeight(15)  //内容行高
@ColumnWidth(18)  //列宽
@ContentFontStyle(fontHeightInPoints = (short) 12)  //字体大小

三、controller层增加导出接口

  @GetMapping("/export")
  public void Export(HttpServletResponse response) {
	  service.export(response);
  }

四、在serviceImpl层编写导出表格方法

  @Override
  public void export(HttpServletResponse response) {
	  List<Export> list = new ArrayList<>();
        for (int i = 1; i <= 3; i++) {
            Export export = new Export(i,"张三","20");
            list.add(export);
        }
	  try {
		  //HttpServletResponse消息头参数设置
		  response.setCharacterEncoding("UTF-8");
		  response.setHeader("Content-Transfer-Encoding", "binary");
		  response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
		  response.setHeader("Pragma", "public");
		  response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
		  String fileName = "导出列表"+ ".xlsx";
		  fileName = new String(fileName.getBytes(), "ISO-8859-1");
		  response.setHeader("Content-Disposition", "attachment;filename=" + fileName );
		  EasyExcel.write(response.getOutputStream(), Export.class)
			  .autoCloseStream(Boolean.FALSE)
			  .sheet("导出列表")
			  .doWrite(list);
	  } catch (Exception e) {
		  e.printStackTrace();
	  }
  }

五、访问接口,下载表格

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值