maven依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
PoiUtils 工具类
public class PoiUtils {
public static ResponseEntity<byte[]> exportArticleExcel(List<ArticleVO> articles) {
HttpHeaders headers = null;
ByteArrayOutputStream baos = null;
try {
//1.创建Excel文档
HSSFWorkbook workbook = new HSSFWorkbook();
//2.创建文档摘要
workbook.createInformationProperties();
//3.获取文档信息,并配置
DocumentSummaryInformation dsi = workbook.getDocumentSummaryInformation();
//3.1文档类别
dsi.setCategory("文章信息");
//3.2设置文档管理员
dsi.setManager("哨戒班");
//3.3设置组织机构
dsi.setCompany("26");
//4.获取摘要信息并配置
SummaryInformation si = workbook.getSummaryInformation();
//4.1设置文档主题
si.setSubject("文章");
//4.2.设置文档标题
si.setTitle("首页文章");
//4.3 设置文档作者
si.setAuthor("26");
//4.4设置文档备注
si.setComments("备注信息暂无");
//创建Excel表单
HSSFSheet sheet = workbook.createSheet("文章表");
//创建日期显示格式
HSSFCellStyle dateCellStyle = workbook.createCellStyle();
dateCellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
//创建标题的显示样式
HSSFCellStyle headerStyle = workbook.createCellStyle();
headerStyle.setFillForegroundColor(IndexedColors.YELLOW.index);
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//定义列的宽度
sheet.setColumnWidth(0, 5 * 256);
sheet.setColumnWidth(1, 12 * 256);
sheet.setColumnWidth(2, 10 * 256);
sheet.setColumnWidth(3, 5 * 256);
sheet.setColumnWidth(4, 12 * 256);
//5.设置表头
HSSFRow headerRow = sheet.createRow(0);
HSSFCell cell0 = headerRow.createCell(0);
cell0.setCellValue("文章id");
cell0.setCellStyle(headerStyle);
HSSFCell cell1 = headerRow.createCell(1);
cell1.setCellValue("作者id");
cell1.setCellStyle(headerStyle);
HSSFCell cell2 = headerRow.createCell(2);
cell2.setCellValue("标题");
cell2.setCellStyle(headerStyle);
HSSFCell cell3 = headerRow.createCell(3);
cell3.setCellValue("内容");
cell3.setCellStyle(headerStyle);
HSSFCell cell4 = headerRow.createCell(4);
cell4.setCellValue("创建日期");
cell4.setCellStyle(headerStyle);
//6.装数据
for (int i = 0; i < articles.size(); i++) {
HSSFRow row = sheet.createRow(i + 1);
ArticleVO article = articles.get(i);
row.createCell(0).setCellValue(article.getId());
row.createCell(1).setCellValue(article.getUId());
row.createCell(2).setCellValue(article.getTitle());
row.createCell(3).setCellValue(article.getContent());
HSSFCell CreateTimeCell = row.createCell(4);
CreateTimeCell.setCellValue(article.getCreateTime());
CreateTimeCell.setCellStyle(dateCellStyle);
headers = new HttpHeaders();
}
headers = new HttpHeaders();
headers.setContentDispositionFormData("attachment",
new String("员工表.xls".getBytes("UTF-8"), "iso-8859-1"));
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
baos = new ByteArrayOutputStream();
workbook.write(baos);
} catch (IOException e) {
e.printStackTrace();
}
return new ResponseEntity<byte[]>(baos.toByteArray(), headers, HttpStatus.CREATED);
}
}
Controller控制层
@RequestMapping(value = "/exportArticle", method = RequestMethod.GET)
public ResponseEntity<byte[]> exportEmp() {
return PoiUtils.exportArticleExcel(articleService.selectAll());
}