1.实体类-GoodVV

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

@Data
public class GoodVV {

@ExcelProperty(value = "商品编号")
    private String goodsCode;

@ExcelProperty(value = "商品名称")
    private String goodsName;
}

2.实体类-TtVV

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

@Data
public class TtVV {

@ExcelProperty(value = "操作人")
    private String operationName;

@ExcelProperty(value = "操作时间")
    private String operationDate;

@ExcelProperty(value = "数据明细数量(条)")
    private Integer size;

@ExcelProperty(value = "商品编号")
    private String goodsCode;

@ExcelProperty(value = "商品名称")
    private String goodsName;
}

3.控制层

/**
     * 导出商品
     * @param response 响应
     */
    @GetMapping("/exportGoods")
    @ApiOperation(value = "商品列表导出", httpMethod = "GET")
    @Permission(level = ResourceLevel.ORGANIZATION, permissionLogin = true)
    public void exportGoods(HttpServletResponse response) throws Exception {
        exportService.exportGoods(response);
    }

4.接口层

/**
     * 导出商品列表
     * @param response 响应体
     */
    void exportGoods(HttpServletResponse response) throws Exception;

5.实现层

/**
     * 模板导出商品列表
     * @param response 响应体
     */
    @Override
    public void exportGoods(HttpServletResponse response) throws Exception {
        //创建容器
        List<GoodVV> list = new ArrayList<>();
        for (int i=0;i<=59;i++){
            GoodVV vv = new GoodVV();
            vv.setGoodsName("商品名称"+i);
            vv.setGoodsCode("商品编号"+i);
            list.add(vv);
        }
        TtVV vo = new TtVV();
        vo.setGoodsName("商品");
        vo.setGoodsCode("商品");
        vo.setOperationName("你大爷");
        vo.setOperationDate(SDF.format(new Date()));
        vo.setSize(list.size());

String template = ExcelTemplateEnum.TEMPLATE_PATH.getDesc() + File.separator +  ExcelTemplateEnum.TEMPLATE_7.getDesc() + ExcelTemplateEnum.TEMPLATE_SUFFIX.getDesc();
        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(template);
        ExcelWriter excelWriter = EasyExcelFactory.write(getOutputStream( ExcelTemplateEnum.TEMPLATE_7.getDesc(), response)).withTemplate(inputStream).build();
        FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
        WriteSheet writeSheet0 = EasyExcelFactory.writerSheet(0).build();
        WriteSheet writeSheet1 = EasyExcelFactory.writerSheet(1).build();
        excelWriter.fill(vo,fillConfig, writeSheet0);
        excelWriter.fill(list, writeSheet1);
        excelWriter.finish();
    }

/**
     * 构建输出流
     * @param fileName:文件名称
     * @param response:
     * @return
     * @throws Exception
     */
    private OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception {
        fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.name());
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding(StandardCharsets.UTF_8.name());
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ExcelTemplateEnum.TEMPLATE_SUFFIX.getDesc());
        return response.getOutputStream();
    }

6.模板示意

7.效果示意

Java Excel 导出多个 sheet相关推荐

  1. java excel 导出多个sheet

    第一步:需要一个通用的装载数据的实体类 package com.yfh.common.core.domain; import lombok.AllArgsConstructor; import lom ...

  2. java excel导出(表头合并,多行表头)

    java excel导出(表头合并,多行表头) 原创:http://www.cnblogs.com/NJM-F/p/10222152.html @RequestMapping(value=" ...

  3. Java Excel导出复杂excel表格样式之ExcelUtil工具类

    Java Excel导出包括普通导出及复杂表格样式,主要是对于需要进行行列合并的列进行特殊处理,计算清楚起始行,结束行,起始列,结束列. 普通导出可以是所有列,也可以是包含某些列,或者排除某些列: 1 ...

  4. java excel 导出数据文件格式无效

    java excel 导出数据文件格式无效 的原因 WritableWorkbook workbook=Workbook.createWorkbook(new File("h:\\a.xls ...

  5. java excel 导出_java导出Excel通用方法实例

    数据导出到Excel几乎是所有客户都会提出的一个需求.下面我就分享一下我的代码. 首先需要引入的jar包: 然后就是正式代码了. package lcy._41_50; import java.io. ...

  6. 后台excel导出(单sheet 多sheet)

    //单sheet调用模板public void exportInfo(String ids,HttpServletResponse response) { try {//单元格列头String[] r ...

  7. java Excel导出功能之 不固定列表格

    背景:考勤周期为本月19号至上月20号,则每个月考勤周期表的列是动态变化的.所有数据显示和excel导出功能都需要动态的进行处理. 显示格式如下图 前端 checkin.jsp<%@ page ...

  8. java excel 导出 下载_使用Java导出Excel表格并由浏览器直接下载

    声明:本文是基于其他博主的文章,自己再稍微改了一点[公共类+业务类],感谢那个博主 参考地址:https://blog.csdn.net/wzy18210825916/article/details/ ...

  9. Java excel导出压缩zip并加密(拿起即用,有用请点赞,不做白嫖怪!)

    文章目录 1.前言 2.开发思路 以下某些类缺少的可以去我上篇文章拿 4.效果 5.结尾了 6.最最后 1.前言 上篇文章我有写了java用poi导出excel加密,但excel加密懂点电脑的都知道怎 ...

最新文章

  1. android8.1内核编译,Android8.1.0安卓源码编译
  2. iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”解决办法...
  3. varchar和Nvarchar区别 ----转载
  4. 使用正则表达式更改编译版本号
  5. mybatis错误之配置文件属性配置问题
  6. encipher.min.php,陌屿授权系统(5.7)最新版 网站授权 - 下载 - 搜珍网
  7. 服务器是计算机的一种 是指,pc服务器是指什么意思
  8. 兼容谷歌的光标居中写法
  9. 声明对象 和对象等于null的区别
  10. linux命令we,Linux 命令执行过程
  11. Java设计模式之——代理设计模式
  12. Win10下安装并配置Python环境变量以及pip的安装、更新与使用
  13. oracle 12c 自增序列
  14. 数据结构练习题——树和二叉树(含应用题)
  15. 关于bootstrap--表格(table的各种样式)
  16. css选择器(选择div内所有p元素)
  17. C语言—指针数组与数组指针
  18. 如果你打算将游戏业务外包 那么这篇文章你就不得不看!
  19. 俩台虚拟机,一台有网,一台没网
  20. cordova App脚手架

热门文章

  1. 使用 python 执行 vba 代码
  2. 华北科技学院计算机专业录取分数线,华北科技学院录取分数线2021是多少分(附历年录取分数线)...
  3. 面试必备:聊聊sql优化的15个小技巧
  4. 根据省份查询城市java代码_java根据城市查找省份
  5. 迷宫算法之递归回溯python实现
  6. hidl 原理分析_AIDL原理分析
  7. 【DFS+回溯+字符串】【洛谷P1019】【单词接龙】
  8. CSS实现Div层背景半透明而内容不透明的效果
  9. 【数据结构导论】第 1 章:概论
  10. java代码混淆器proguard使用大法3种