Java Excel 导出多个 sheet
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相关推荐
- java excel 导出多个sheet
第一步:需要一个通用的装载数据的实体类 package com.yfh.common.core.domain; import lombok.AllArgsConstructor; import lom ...
- java excel导出(表头合并,多行表头)
java excel导出(表头合并,多行表头) 原创:http://www.cnblogs.com/NJM-F/p/10222152.html @RequestMapping(value=" ...
- Java Excel导出复杂excel表格样式之ExcelUtil工具类
Java Excel导出包括普通导出及复杂表格样式,主要是对于需要进行行列合并的列进行特殊处理,计算清楚起始行,结束行,起始列,结束列. 普通导出可以是所有列,也可以是包含某些列,或者排除某些列: 1 ...
- java excel 导出数据文件格式无效
java excel 导出数据文件格式无效 的原因 WritableWorkbook workbook=Workbook.createWorkbook(new File("h:\\a.xls ...
- java excel 导出_java导出Excel通用方法实例
数据导出到Excel几乎是所有客户都会提出的一个需求.下面我就分享一下我的代码. 首先需要引入的jar包: 然后就是正式代码了. package lcy._41_50; import java.io. ...
- 后台excel导出(单sheet 多sheet)
//单sheet调用模板public void exportInfo(String ids,HttpServletResponse response) { try {//单元格列头String[] r ...
- java Excel导出功能之 不固定列表格
背景:考勤周期为本月19号至上月20号,则每个月考勤周期表的列是动态变化的.所有数据显示和excel导出功能都需要动态的进行处理. 显示格式如下图 前端 checkin.jsp<%@ page ...
- java excel 导出 下载_使用Java导出Excel表格并由浏览器直接下载
声明:本文是基于其他博主的文章,自己再稍微改了一点[公共类+业务类],感谢那个博主 参考地址:https://blog.csdn.net/wzy18210825916/article/details/ ...
- Java excel导出压缩zip并加密(拿起即用,有用请点赞,不做白嫖怪!)
文章目录 1.前言 2.开发思路 以下某些类缺少的可以去我上篇文章拿 4.效果 5.结尾了 6.最最后 1.前言 上篇文章我有写了java用poi导出excel加密,但excel加密懂点电脑的都知道怎 ...
最新文章
- android8.1内核编译,Android8.1.0安卓源码编译
- iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”解决办法...
- varchar和Nvarchar区别 ----转载
- 使用正则表达式更改编译版本号
- mybatis错误之配置文件属性配置问题
- encipher.min.php,陌屿授权系统(5.7)最新版 网站授权 - 下载 - 搜珍网
- 服务器是计算机的一种 是指,pc服务器是指什么意思
- 兼容谷歌的光标居中写法
- 声明对象 和对象等于null的区别
- linux命令we,Linux 命令执行过程
- Java设计模式之——代理设计模式
- Win10下安装并配置Python环境变量以及pip的安装、更新与使用
- oracle 12c 自增序列
- 数据结构练习题——树和二叉树(含应用题)
- 关于bootstrap--表格(table的各种样式)
- css选择器(选择div内所有p元素)
- C语言—指针数组与数组指针
- 如果你打算将游戏业务外包 那么这篇文章你就不得不看!
- 俩台虚拟机,一台有网,一台没网
- cordova App脚手架
热门文章
- 使用 python 执行 vba 代码
- 华北科技学院计算机专业录取分数线,华北科技学院录取分数线2021是多少分(附历年录取分数线)...
- 面试必备:聊聊sql优化的15个小技巧
- 根据省份查询城市java代码_java根据城市查找省份
- 迷宫算法之递归回溯python实现
- hidl 原理分析_AIDL原理分析
- 【DFS+回溯+字符串】【洛谷P1019】【单词接龙】
- CSS实现Div层背景半透明而内容不透明的效果
- 【数据结构导论】第 1 章:概论
- java代码混淆器proguard使用大法3种