当前位置: 首页 > news >正文

EasyExcel填充数据EasyExcel填充数据流下载 easyexcel填充excel下载 easyexcel填充

EasyExcel填充数据EasyExcel填充数据流下载 easyexcel填充excel下载 easyexcel填充

  • 1、填充数据然后将文件输出给浏览器

1、填充数据然后将文件输出给浏览器

官网地址

官网的demo填充生成的是file文件, 实际需求用的最多的是 填充完数据将Excel输出给浏览器

填充模版Excel文件用的是官方的: 地址: https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/resources/fill/complex.xlsx

示例代码来自官方的 复杂填充 代码改造,官网地址: https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/fill/FillTest.java

	/** 构建数据*/private List<FillData> data() {List<FillData> list = ListUtils.newArrayList();for (int i = 0; i < 10; i++) {FillData fillData = new FillData();list.add(fillData);fillData.setName("张三");fillData.setNumber(5.2);fillData.setDate(new Date());}return list;}public void complex(HttpServletRequest request, HttpServletResponse response) throws ServiceException, IOException {// 模版所在路径,将官方文件下载下来File template= "F:\\complexFiles\\complex.xlsx";// EasyExcel没有提供填充数据 Excel流下载。需要自己实现// 创建一个 字节数组输出流,填充数据到字节数组流,然后在输出给浏览器ByteArrayOutputStream os = new ByteArrayOutputStream();try (ExcelWriter excelWriter = EasyExcel.write(os).withTemplate(template).build()) {WriteSheet writeSheet = EasyExcel.writerSheet().build();// 填充列表数据excelWriter.fill(data(), writeSheet);// 写入list之前的数据Map<String, Object> map = MapUtils.newHashMap();map.put("date", "2019年10月9日13:28:28");map.put("total", 1000);excelWriter.fill(map, writeSheet);// 刷新excelWriter.finish();// 直接输出文件
//            response.getOutputStream().write(os.toByteArray());
//            response.getOutputStream().flush();BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(response.getOutputStream(), 8152);bufferedOutputStream.write(os.toByteArray());bufferedOutputStream.close();// 或者使用GZIP压缩输出,但是需要服务器支持
//            OutputStream outputStream = response.getOutputStream();
//            GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream);
//            // 或者
//            DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(outputStream);
//            deflaterOutputStream.write(os.toByteArray());
//            deflaterOutputStream.finish();
//            deflaterOutputStream.close();}}
http://www.lryc.cn/news/164665.html

相关文章:

  • 精通数据集成:轻易云数据集成平台应用实战与技术内幕
  • “2023中国数字化服务之选”榜单发布,谷器数据荣耀登榜!
  • iisfastchi漏洞复现
  • 虚拟机Ubuntu操作系统常用终端命令(详细解释+详细演示)
  • 【力扣每日一题】2023.9.12 课程表Ⅳ
  • CentOS 安装HTTP代理服务器 Tinyproxy
  • PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行
  • vue学习之 v-for key
  • ARM接口编程—IIC总线(exynos 4412平台)
  • ReactNative进阶(二十一)开源插件 react-native-device-info 获取设备信息
  • MySql学习笔记05——DML
  • halcon对图片进行处理基础
  • element-ui在vue中如何实现校验两个复选框至少选择一个!
  • DeepinV20/Ubuntu安装postgresql方法
  • 汽车ECU软件升级方案介绍
  • 首家!亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试
  • 为什么好多人想辞职去旅行?
  • vim的使用介绍以及命令大全
  • JavaScript高级技巧:深入探索JavaScript语言的高级特性和用法
  • 虹科方案|HK-Edgility利用边缘计算和VNF降本增效
  • SpringBoot项目--电脑商城【新增收货地址】
  • [HNCTF 2022 Week1]——Web方向 详细Writeup
  • 3dmax vray如何创建真实的灯光?3dmax vray 室内照明教程
  • 如何在本地使用Docker搭建和运行Kubernetes集群
  • 每天几道Java面试题(第二天)
  • Java | 线程的生命周期和安全
  • Bootstrap的一些主要作用
  • 网络编程套接字 | UDP套接字
  • 网络层IP协议
  • C++ Day4