SpringBoot使用这个依赖会报错
<!--EasyPoi 的基本导入导出依赖-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
可以使用最新的依赖和springboot融合度高
<!--导入和导出excel依赖-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.2.0</version>
</dependency>
导出具体做法
实体类 entity
package com.baizhi.bzmall.entity;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* InnoDB free: 11264 kB
* </p>
*
* @author lisi
* @since 2021-03-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BzBrand implements Serializable {
private static final long serialVersionUID=1L;
/**
* 品牌id
*/
@TableId(value = "brand_id", type = IdType.AUTO)
@Excel(name = "品牌id")
private Integer brandId;
/**
* 名称
*/
@Excel(name = "名称")
private String name;
/**
* 首字母
*/
@Excel(name = "首字母")
private String firstLetter;
/**
* 排序
*/
@Excel(name = "排序")
private int sort;
/**
* 是否显示[0-不显示;1-显示]
*/
@Excel(name = "是否显示",replace={"不显示_0","显示_1"})
private int showStatus;
/**
* 品牌logo
*/
@Excel(name = "品牌logo")
private String logo;
/**
* 品牌描述
*/
@Excel(name = "品牌描述")
private String brandStory;
}
@Excel(name = "")用于在xls中生成标题
属性:replace 用于把表中的状态属性转化为自己想要的属性
比如:表中属性sex 状态 0 和 1, 0表示男,1表示女,可以使用这个属性 replace ={"男_0","女_1"}
控制器 controller
/*批量下载*/
@GetMapping("/download")
public void download(HttpServletResponse resp) throws Exception {
resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("所有品牌信息.xls", "utf-8"));
resp.setContentType("application/vnd.ms-excel");
//查询所以数据
List<BzBrand> brands = bbs.list();
ExportParams exportParams = new ExportParams("所有品牌数据", "brands");
//BzBrand 类对象 实体类的对象
//brands 查询所有数据
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, BzBrand.class, brands);
workbook.write(resp.getOutputStream());
}