package net.xqlee.project.demo.controller;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import net.xqlee.project.demo.pojo.User;
/**
* 通过easypoi 导出excel
*
* @author xqlee-mobile
*
*/
@Controller
public class ExcelExportController {
private static final Logger log = LoggerFactory.getLogger(ExcelExportController.class);
@GetMapping("export.do")
public void export(HttpServletResponse response) {
try {
// 设置响应输出的头类型
response.setHeader("content-Type", "application/vnd.ms-excel");
// 下载文件的默认名称
response.setHeader("Content-Disposition", "attachment;filename=user.xls");
// =========easypoi部分
ExportParams exportParams = new ExportParams();
// exportParams.setDataHanlder(null);//和导入一样可以设置一个handler来处理特殊数据
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, User.class, data());
workbook.write(response.getOutputStream());
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
/***
* 创建模拟数据
*
* @return
*/
private List data() {
List list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
list.add(new User("id-" + i, "Leftso-" + i, 15 + i, new Date()));
}
return list;
}
}