1、easyexcel、poi、easypoi、auto-poi
这里总结下auto-poi
<dependency>
<groupId>org.jeecgframework</groupId>
<artifactId>autopoi-web</artifactId>
<version>1.3.4</version>
</dependency>
package com.lierlin.zhenghe.utils.excel;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
/**
* @author lel
*/
@Component
@Slf4j
public class ExcelUtils {
public static void export(Workbook workbook, HttpServletResponse response, String fileName) throws IOException {
OutputStream out = null;
try {
fileName = URLEncoder.encode(fileName + ".xls", StandardCharsets.UTF_8);
response.reset();
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
response.setHeader("Access-Control-Expose-Headers", "Content-disposition, Content-Type,Cache-control");
out = response.getOutputStream();
workbook.write(out);
out.flush();
} catch (IOException e) {
log.error("导出Excel出现严重异常,异常信息:", e);
e.printStackTrace();
} finally {
if (null != out) {
out.close();
}
}
}
}
package com.lierlin.zhenghe.controller;
import com.lierlin.zhenghe.dal.NewTableMapper;
import com.lierlin.zhenghe.pojo.newtable.NewTableDO;
import com.lierlin.zhenghe.utils.excel.ExcelUtils;
import com.lierlin.zhenghe.utils.excel.UserEntity;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author lel
*/
@Controller
@RequestMapping("/test")
public class NewTableController {
@Resource
private NewTableMapper newTableMap;
@RequestMapping("/list")
public List<NewTableDO> getList(HttpServletResponse response){
List<NewTableDO> list = newTableMap.getList();
List<UserEntity> collect = list.stream().map(x -> {
UserEntity u = new UserEntity();
u.setId(x.getId());
u.setName(x.getName());
return u;
}).collect(Collectors.toList());
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(),
UserEntity.class, collect);
try {
ExcelUtils.export(workbook,response,"1111");
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
}