java hutool工具类实现将数据下载到excel
通过hutool工具类,对于excel的操作变得非常简单,上篇介绍的是excel的上传,对excel的操作,核心代码只有一行。本篇的excel的下载,核心数据也不超过两行,简洁方便,特别适合当下的低代码操作。
下载excel,有两种方式,一种将生成的excel下载到指定路径,一种是在web页面中直接下载到默认的download路径。
第一种:
ExcelWriter writer = ExcelUtil.getWriter("D:/myfile/" + new String("班级人员表.".getBytes(StandardCharsets.UTF_8)));
第二种:
ExcelWriter writer = ExcelUtil.getWriter();
write.flush(outputStream, isCloseOut);
使用步骤及代码示例如下:
引入jar包
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-poi</artifactId><version>5.7.16</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency>
第一种指定路径下载的方式代码实现如下:
public class CreateExcelDemo{public void createExcel() {/*** 第一部分,组装数据*/// classList 就是输入到excel的数据集合List<Map<String, String>> classList = new ArrayList<>();// map的key 是表头,value是表头对应的值Map<String, String> map = new LinkedHashMap<>();map.put("班级名称", "计算机一班");// 第一列map.put("班级人数", "45");// 第二列map.put("班主任", "王老师");classList.add(map);/*** 第二部分,指定路径和excel文件名称,将数据放入excel*/// 设置UTF-8,是为了防止在Linux中,中文名称出现乱码ExcelWriter writer = ExcelUtil.getWriter("D:/myfile/" + new String("班级人员表.xlsx".getBytes(StandardCharsets.UTF_8))).renameSheet("班级名称") //设置sheet名称,默认是第一个sheet .setColumnWidth(-1, 20) // 设置列宽度为20,-1表示针对所有列.write(classList, true); // 将List数据写入到excel表,true表示设置标题行writer.close(); // 写完记得关闭}
}
结果如下:


第二种是在web页面中下载,即直接通过浏览器下载,代码如下:
public class CreateExcelDemo {public static void createExcel(HttpServletResponse response) {/*** 第一部分,组装数据*/// classList 就是输入到excel的数据集合List<Map<String, String>> classList = new ArrayList<>();// map的key 是表头,value是表头对应的值Map<String, String> map = new LinkedHashMap<>();map.put("班级名称", "计算机一班");// 第一列map.put("班级人数", "45");// 第二列map.put("班主任", "王老师");classList.add(map);/*** 第二部分,通过流输出到文件*/OutputStream out = null;try (ExcelWriter writer = ExcelUtil.getWriter()) {writer.write(classList, true);// 写入数据response.setContentType("application/vnd.ms-excel;charset=utf-8");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("班级人员表.xlsx", "UTF-8"));out = response.getOutputStream();// 获取流writer.flush(out, true); // 将数据流输出到文件} catch (IOException e) {e.printStackTrace();}IoUtil.close(out);// 流的操作要关闭}
结果如下:


excel的操作是很方便的,其他设置可以查看源码,源码都是中文注释,很清晰。
excel表上传请看上一篇:java hutool工具实现excel的上传 支持office03和07
相关文章:
java hutool工具类实现将数据下载到excel
通过hutool工具类,对于excel的操作变得非常简单,上篇介绍的是excel的上传,对excel的操作,核心代码只有一行。本篇的excel的下载,核心数据也不超过两行,简洁方便,特别适合当下的低代码操作。 下载…...
【C/Python】Gtk部件ListStore的使用
一、C语言 在GTK中,Gtk.ListStore是一个实现了Gtk.TreeModel接口的存储模型,用于在如Gtk.TreeView这样的控件中存储数据。以下是一个简单的使用Gtk.ListStore的C语言示例,该示例创建了一个列表,并在图形界面中显示: …...
Swift 入门之自定义类型的模式匹配(Pattern Matching)
概览 小伙伴们都知道 Swift 是一门简洁、类型安全、极富表现力以及“性感迷人”的编程语言。 和大多数语言一样,在 Swift 中也有一些隐藏着的、不为人知的宝藏特性。利用它们我们可以极大增加撸码的愉悦和成就感。 其中,模式匹配(Pattern …...
MySQL-----DML基础操作
DML语句 DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。 ▶ 添加数据(INSERT) 【语法】 1. 给指定字段添加数据 INSERTO 表名 (字段名1,字段名2,...) VALUES (值1,值2,...); 2.给全…...
提前祝大家新年好!来看看社区 2023 都得了哪些奖吧
大噶好!转眼马上就是“龙”历新年啦,不知道大家这周的工作热情怎么样呢?小陈的心已经在殷切期盼回家过年了~ RTE 开发者社区预祝诸位: 2024 年 🐲龙年添财气,万事皆胜意! 回顾过去…...
Redis核心技术与实战【学习笔记】 - 19.Pika:基于SSD实现大容量“Redis”
前言 随着业务数据的增加(比如电商业务中,随着用户规模和商品数量的增加),就需要 Redis 能保存更多的数据。你可能会想到使用 Redis 切片集群,把数据分散保存到不同的实例上。但是这样做的话,如果要保存的…...
qt-C++笔记之contains()和isEmpty()函数、以及部分其他函数列举
qt-C笔记之contains()和isEmpty()函数、以及部分其他函数列举 code review! 文章目录 qt-C笔记之contains()和isEmpty()函数、以及部分其他函数列举contains()isEmpty() 类似的其他函数列举通用容器类函数字符串特有函数 在Qt C开发中, contains() 和 isEmpty()…...
极速搭建幻兽帕鲁私服,叫上好友春节假期一起联机畅玩帕鲁
文章目录 前言幻兽帕鲁私服详细部署教程查看服务器开始游戏自定义游戏参数配置 前言 行业资讯 《幻兽帕鲁》的火爆对开发商 Pocketpair 来说,代价是巨大的。该游戏的成功让首席执行官沟部拓郎最近在推特上表示,他可能因服务器运营费用而面临破产。据他透…...
MagicVideo-V2:多阶段高保真视频生成框架
本项工作介绍了MagicVideo-V2,将文本到图像模型、视频运动生成器、参考图像embedding模块和帧内插模块集成到端到端的视频生成流程中。由于这些架构设计的好处,MagicVideo-V2能够生成具有极高保真度和流畅度的美观高分辨率视频。通过大规模用户评估&…...
【三】【C++】类与对象(二)
类的六个默认成员函数 在C中,有六个默认成员函数,它们是编译器在需要的情况下自动生成的成员函数,如果你不显式地定义它们,编译器会自动提供默认实现。这些默认成员函数包括: 默认构造函数 (Default Constructor)&…...
ffmpeg 输入文件,输入出udp-ts 指定pid
要使用FFmpeg将输入文件转换为UDP传输流(TS)并指定特定的PID,您可以使用以下命令: ffmpeg -i input_file -c:v libx264 -preset ultrafast -tune zerolatency -f mpegts -map 0:v:0 -map 0:a:0 -pid 0x12345678 udp://output_addr…...
自研人工智能小工具-小蜜蜂(国外ChatGpt的平替)
国内有非常多好用的人工智能工具,但均无法完全替代国外ChatGpt。 ChatGPT相较于其他国内工具的优势在于以下几点: 创新的语言生成能力:ChatGPT是由OpenAI开发的先进的自然语言生成模型,它采用了大规模的预训练和精细调整方法。因此…...
Stable Diffusion 模型下载:ReV Animated
模型介绍 该模型能够创建 2.5D 类图像生成。此模型是检查点合并,这意味着它是其他模型的产物,以创建从原始模型派生的产品。 条目内容类型大模型基础模型SD 1.5来源CIVITAI作者s6yx文件名称revAnimated_v122EOL.safetensors文件大小5.13GB 生成案例 …...
某赛通电子文档安全管理系统 PolicyAjax SQL注入漏洞复现
0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…...
Prometheus 采集Oracle监控数据
前言 oracledb_exporter是一个开源的Prometheus Exporter,用于从Oracle数据库中收集关键指标并将其暴露给Prometheus进行监控和告警。它可以将Oracle数据库的性能指标转换为Prometheus所需的格式,并提供一些默认的查询和指标。 download Oracle Oracle Windows Install …...
【ARM Trace32(劳特巴赫) 使用介绍 3.1 -- 不 attach core 直接访问 memory】
文章目录 背景介绍背景介绍 在使用 trace32 时在有些场景需要不 attach core 然后去读写 memory,比如在某些情况下 core 已经挂死连接不上了,这个时候需要dump内存,这个时候需要怎做呢? print "test for memory access directly";SYStem.OPTION WAITRESET OF…...
MySQL事务和SQL优化
目录 一、什么是事务 二、事务的特征 三、MySQL使用事务 3.1 实现流程: 实现截图: 3.2 实例演示: 四、事务的隔离级别 幻读: 如何解决: 脏读: 不可重复读: 幻读和不可重复读两者区别…...
[C语言]结构体初识
结构体定义 结构体是一些值的集合,被成为成员变量,结构的每个成员可以是不同类型的变量 声明: 定义了一个结构体比如以张蓝图,不占据内存,当你创建了一个结构体变量时,才占空间. #include<stdio.h>//struct 为结构体关键字, student 自定义结构体名称 struct student …...
跨平台开发:浅析uni-app及其他主流APP开发方式
随着智能手机的普及,移动应用程序(APP)的需求不断增长。开发一款优秀的APP,不仅需要考虑功能和用户体验,还需要选择一种适合的开发方式。随着技术的发展,目前有多种主流的APP开发方式可供选择,其…...
MyBatis常见面试题汇总
说一下MyBatis执行流程? MyBatis是一款优秀的基于Java的持久层框架,它内部封装了JDBC,使开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动、创建连接等的过程,MyBatis的执行流程如下: 加载配…...
2026-04-06:字典序最小和为目标值且绝对值是排列的数组。用go语言,给你一个正整数 n 和一个整数 target。 你需要构造一个长度为 n 的整数数组,要求同时满足: 1.数组中所有元素的总
2026-04-06:字典序最小和为目标值且绝对值是排列的数组。用go语言,给你一个正整数 n 和一个整数 target。 你需要构造一个长度为 n 的整数数组,要求同时满足: 1.数组中所有元素的总和必须等于 target。 2.把数组里每个元素取绝对值…...
知识竞赛软件售后服务哪家好?真实用户评价与选购指南
知识竞赛软件售后服务哪家好?真实用户评价揭秘在数字化教学与企业培训普及的今天,知识竞赛软件已成为学校、企业和各类机构开展活动的得力工具。然而,软件购买并非一锤子买卖,售后服务的质量直接关系到软件能否长期稳定运行、活动…...
2009 Text 1
2009 Text 1...
PrimeTime实战指南:从基础STA流程到精准时序报告解析
1. PrimeTime与静态时序分析基础 刚接触PrimeTime时,我和大多数工程师一样被满屏的时序报告搞得头晕眼花。直到把整个设计流程跑通三遍后,才真正理解这个工具的价值。PrimeTime(简称PT)是Synopsys推出的静态时序分析黄金工具&…...
Poppins字体完整指南:免费获取专业级多语言排版解决方案
Poppins字体完整指南:免费获取专业级多语言排版解决方案 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 你是否正在寻找一款既美观又支持多语言的免费字体来提升设计…...
如何用QtScrcpy突破手机操控局限?三大创新方案让多场景效率提升300%
如何用QtScrcpy突破手机操控局限?三大创新方案让多场景效率提升300% 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy 手机屏幕太小导致操作失误?多设备管理切…...
手把手教你用ModelScope替代HuggingFace:从注册到下载ChatGLM3-6b的完整指南
ModelScope实战指南:从零开始部署ChatGLM3-6b大模型 在人工智能技术快速迭代的今天,获取和部署高质量的大语言模型已成为开发者面临的第一个挑战。传统方式往往受限于网络环境和复杂的配置流程,而阿里云推出的ModelScope平台正在改变这一现状…...
FactoryBluePrints:戴森球计划工厂蓝图系统的架构设计与技术实现
FactoryBluePrints:戴森球计划工厂蓝图系统的架构设计与技术实现 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints FactoryBluePrints是一个针对《戴森球计划》游…...
Sunshine游戏串流革命:把你的高性能PC变成私人云游戏服务器
Sunshine游戏串流革命:把你的高性能PC变成私人云游戏服务器 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经想过,能不能像Netflix一样随时随地玩…...
用 Laravel AI SDK 构建多智能体工作流
Anthropic 之前发布过一篇广泛传播的文章《Building Effective Agents》,系统总结了构建生产级 AI 系统时最实用的几种模式。这些模式的共同点是:都已经在真实场景中被反复验证,实践性强,而且采用范围很广。对 Laravel 开发者来说…...
