导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
直接通过EasyExcel调用write方法
EasyExcel.write(fileName, clazz).sheet(sheetName).doWrite(dataList);
分别创建ExcelWriter和WriteSheet对象,写完要手动关闭ExcelWriter的方法关闭流
ExcelWriter excelWriter = EasyExcel.write(fileName, clazz).build();
WriteSheet writeSheet = EasyExcel.writerSheet(sheetName).build();
excelWriter.write(dataList, writeSheet);
excelWriter.finish();
不同对象写入不同sheet中
ExcelWriter excelWriter = EasyExcel.write(pathName).build();
WriteSheet firstWriteSheet = EasyExcel.writerSheet("gt").head(UserInfo.class).build();
WriteSheet secondWriterSheet = EasyExcel.writerSheet("gt1").build();
excelWriter.write(userInfos, firstWriteSheet);
excelWriter.write(userInfos, secondWriterSheet);
excelWriter.finish();
web中Excel文件下载
@GetMapping("download")
public void download(HttpServletResponse response) throws IOException {
response.reset();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode(excelName, "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
WriteSheet writeSheet = EasyExcel.writerSheet(sheetName).build();
excelWriter.write(dataList, writeSheet);
excelWriter.finish();
}
自定义转换器
public class GenderConverter implements Converter<Integer> {
@Override
public Class supportJavaTypeKey() {
return Integer.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public Integer convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String stringValue = cellData.getStringValue();
if ("男".equals(stringValue)){
return 1;
}else {
return 2;
}
}
@Override
public CellData convertToExcelData(Integer integer, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
if(Objects.equals(integer,1)){
return new CellData("男");
}
return new CellData("");
}
}