EasyPoi动态导出
EasyPoi简单使用
动态导出
引入maven坐标
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
模板实体类添加注解
package hs.ex.ls.bean;
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import java.io.Serializable;
/**
* 统计每月栏目点击量
*/
@ExcelTarget("lsColumnClick")
public class LsColumnClick implements Serializable {
private Integer id;
private String columnIdentity;
@Excel(name = "栏目名")
private String columnName;
@Excel(name = "年份")
private String clickYear;
@Excel(name = "一月")
private Integer january = 0; // 1
@Excel(name = "二月")
private Integer february = 0; // 2
@Excel(name = "三月")
private Integer march = 0; // 3
@Excel(name = "四月")
private Integer april = 0; // 4
@Excel(name = "五月")
private Integer may = 0; // 5
@Excel(name = "六月")
private Integer june = 0; // 6
@Excel(name = "七月")
private Integer july = 0; // 7
@Excel(name = "八月")
private Integer august = 0; // 8
@Excel(name = "九月")
private Integer september = 0; // 9
@Excel(name = "十月")
private Integer october = 0; // 10
@Excel(name = "十一月")
private Integer november = 0; // 11
@Excel(name = "十二月")
private Integer december = 0; // 12
// get,set已省略
}
动态导出示例
/*
按年导出某几个月
*/
public String exportClickPhone(String year, String[] months, HttpServletResponse response) throws IOException {
// 查询要导出的类的集合
ArrayList<LsColumnClick> list = lsColumnClickDao.findPhoneByClickYear(null, year, null);
// 构建要导出的基础集合
List<ExcelExportEntity> beanList = new ArrayList<ExcelExportEntity>();
// 添加要导出的列
beanList.add(new ExcelExportEntity("栏目名", "columnName"));
// 遍历月份添加需要导出的列
for (String m : months) {
switch (m) {
case "1":
beanList.add(new ExcelExportEntity("一月", "january"));
break;
case "2":
beanList.add(new ExcelExportEntity("二月", "february"));
break;
case "3":
beanList.add(new ExcelExportEntity("三月", "march"));
break;
case "4":
beanList.add(new ExcelExportEntity("四月", "april"));
break;
case "5":
beanList.add(new ExcelExportEntity("五月", "may"));
break;
case "6":
beanList.add(new ExcelExportEntity("六月", "june"));
break;
case "7":
beanList.add(new ExcelExportEntity("七月", "july"));
break;
case "8":
beanList.add(new ExcelExportEntity("八月", "august"));
break;
case "9":
beanList.add(new ExcelExportEntity("九月", "september"));
break;
case "10":
beanList.add(new ExcelExportEntity("十月", "october"));
break;
case "11":
beanList.add(new ExcelExportEntity("十一月", "november"));
break;
case "12":
beanList.add(new ExcelExportEntity("十二月", "december"));
break;
}
}
// 基础集合导出到Workbook
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(year + "年手机端栏目点击量", "栏目点击"), beanList, list);
// 告诉浏览器用什么软件可以打开此文件
response.setHeader("content-Type", "application/vnd.ms-excel");
// 下载文件的默认名称
response.setHeader("Content-Disposition", "attachment;filename=phoneClick.xls");
// 浏览器响应下载
workbook.write(response.getOutputStream());
return null;
}