java使用EasyPoi动态导出

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;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值