1. 首先引入依赖
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.0.1</version>
</dependency>
2. 文档API 介绍
HSSF - 提供读写Microsoft Excel格式档案的功能;
XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读写Microsoft Visio格式档案的功能。
// HSSFWorkbook 为excel 文档对象
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
// HSSFSheet excel 中的一个表单对象,支持配置表名
HSSFSheet sheet = hssfWorkbook.createSheet();
// HSSFCellStyle 配置单元格样式对象
HSSFCellStyle cellStyle = hssfWorkbook.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);
// 表示 1,2,3 列全部设置样式为居中
sheet.setDefaultColumnStyle(0,cellStyle);
sheet.setDefaultColumnStyle(1,cellStyle);
sheet.setDefaultColumnStyle(2,cellStyle);
// 设置 列宽
sheet.setColumnWidth(0,20*256);
sheet.setColumnWidth(1,20*256);
sheet.setColumnWidth(2,20*256);
// 合并单元 0, 0, 0, 2 表示 excel 表第一行到地二行 ,从第一列到第三列 所在区间的单元格合并为一个
CellRangeAddress cra=new CellRangeAddress(0, 1, 0, 2);
sheet.addMergedRegion(cra);
// 创建第一行 setCellValue 方法重载支持表单元格格式
HSSFRow row0 = sheet.createRow(0);
// 设置行高
row0.setHeightInPoints(30L);
row0.createCell(0).setCellValue("统计报表");
// 创建第二行
HSSFRow titlerRow = sheet.createRow(1);
titlerRow.createCell(0).setCellValue("姓名");
titlerRow.createCell(1).setCellValue("性别");
titlerRow.createCell(2).setCellValue("年龄");
// 创建第三行
HSSFRow dataRow = sheet.createRow( 2);
dataRow.createCell(0).setCellValue("张三");
dataRow.createCell(1).setCellValue("男");
dataRow.createCell(2).setCellValue(1);
//返回相应头数据
ServletOutputStream outputStream = response.getOutputStream();
String filename = "test";
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
filename = URLEncoder.encode(filename,"UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + filename + ".xlsx");
hssfWorkbook.write(outputStream);
hssfWorkbook.close();