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);
}
成功: