导包
maven地址
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
创建
导出数据
private void applyExcl(HSSFWorkbook workbook, String fileName, ...){
...
CellStyle headerCellStyle = workbook.createCellStyle();
headerCellStyle.setAlignment(HorizontalAlignment.LEFT);
headerCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
headerCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
headerCellStyle.setFillBackgroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
headerCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
HSSFFont font = workbook.createFont();
font.setFontName("黑体");
font.setBold(true);
font.setFontHeightInPoints((short) 14);
HSSFSheet sheet = workbook.createSheet(fileName);
HSSFRow headerRow = sheet.createRow(0);
headerRow.setHeight(500);
final String[] headers = {"通过好友验证时间", "昵称", "ID", "粉昵称", "粉ID", "粉资源号"};
for (int i = 0; i < headers.length; i++) {
HSSFCell cell = headerRow.createCell(i);
cell.setCellValue(headers[i]);
cell.setCellStyle(headerCellStyle);
}
List<Data> dataList = ...;
for (int i = 0; i < dataList.size(); i++) {
Data data = dataList.get(i);
HSSFRow bodyRow = sheet.createRow(i + 1);
bodyRow.setHeight(400);
for (int j = 0; j < headers.size; j++) {
HSSFCell cell = bodyRow.createCell(j);
cell.setCellStyle(bodyCallStyle);
switch (j) {
case 0 :
cell.setCellValue(data.getAddTime());
break;
case 1:
cell.setCellValue(data.getNickName());
break;
case 2:
cell.setCellValue(data.getId());
break;
case 3:
...
default:
break;
}
}
}
for (int i = 0; i < headers.length; i++) {
sheet.autoSizeColumn(i);
sheet.setColumnWidth(i, sheet.getColumnWidth(i) * 17 / 10);
}
...
}
设置response
...
public void download(HttpServletResponse response, WechatContactApplyVO vo){
response.setCharacterEncoding("UTF-8");
response.setLocale(new java.util.Locale("zh", "CN"));
...
try {
HSSFWorkbook workbook = new HSSFWorkbook();
applyExcl( workbook, fileName...);
response.setContentType("application/x-xls");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xls");
response.flushBuffer();
workbook.write(response.getOutputStream());
} catch (Exception e) {
log.error("【导出申请好友统计信息】 导出已通过记录异常 uins:{} msg:{}", vo.getUins(), e.getMessage());
e.printStackTrace();
throw new BusinessEception(ResultCode.RESULT_HANDLER_FAILED, e.message);
}
}
...