第一步,导入依赖
<!-- poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.1</version>
</dependency>
第二步,使用
注意controller层要获取 HttpServletRequest request, HttpServletResponse response
// .....这里是获取list的业务逻辑,就不展示了
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("加工错误表");
HSSFRow row = null;
int columnIndex = 0;
row = sheet.createRow(0);
row.setHeight((short) (22.50 * 20));//设置行高
row.createCell(columnIndex).setCellValue("序号");
row.createCell(++columnIndex).setCellValue("业务编号");
row.createCell(++columnIndex).setCellValue("企业名称");
row.createCell(++columnIndex).setCellValue("统一社会信用代码");
row.createCell(++columnIndex).setCellValue("材料名称");
row.createCell(++columnIndex).setCellValue("错误类型");
row.createCell(++columnIndex).setCellValue("错误描述");
row.createCell(++columnIndex).setCellValue("添加日期");
row.createCell(++columnIndex).setCellValue("是否处理");
row.createCell(++columnIndex).setCellValue("处理时间");
row.createCell(++columnIndex).setCellValue("是否加工过");
for (int i = 0; i < list.size(); i++) {
row = sheet.createRow(i + 1);
BusinessWorkingErrDTO businessWorkingErrDTO = list.get(i);
columnIndex = 0;
row.createCell(columnIndex).setCellValue(i + 1);
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getBussinessid());
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getCompanyname());
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getRegistid());
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getArchlistname());
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getErrortype());
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getErrorremark());
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getAddtime());
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getDealsign() == 0 ? "否" : "是");
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getFinishtime());
row.createCell(++columnIndex).setCellValue(businessWorkingErrDTO.getWorkingfirststate() == 0 ? "否" : "是");
}
sheet.setDefaultRowHeight((short) (16.5 * 20));
//列宽自适应
for (int i = 0; i <= 11; i++) {
sheet.autoSizeColumn(i);
}
String title = "清单";
try {
response.setHeader("Content-disposition", "attachment;fileName=" + URLEncoder.encode(title + ".xls", "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
response.setContentType("application/octet-stream;charset=utf-8");
OutputStream ouputStream = null;
try {
ouputStream = response.getOutputStream();
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close();
} catch (IOException e) {
e.printStackTrace();
}