java导出excel思路

news2024/12/24 2:17:37

1、构建导出的数据模型,

这个模型可以自己画,也可以读取一个自己制作好的模板,根据模板填充数据,然后flush到一个新的excel文件。

1)、自己画

@GetMapping("/exportTemplate")
    public void exportTemplate(HttpServletResponse response) throws IOException {
        String column1Name1 = "时间戳";
        String column1Name2 = "设备名称";
        List<String> headList = new ArrayList<>();
        headList.add(column1Name1);
        headList.add(column1Name2);

        //在内存操作,写到浏览器
        ExcelWriter writer= ExcelUtil.getWriter(true);

 
        // 设置表头的宽度
        writer.setColumnWidth(0, 20);
        writer.addHeaderAlias("timestamp",column1Name1);
        writer.setColumnWidth(1, 15);
        writer.addHeaderAlias("deviceName",column1Name2);
 
        // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之
        writer.setOnlyAlias(true);
 
        // 表格内容【相比上一节新内容】
        List<CollectDataExcelVo> excelList = new ArrayList<>();
        CollectDataExcelVo vo1 = new CollectDataExcelVo();
        vo1.setDeviceName("A类设备");
        vo1.setTimestamp(DateUtil.format(new Date()));
        excelList.add(vo1);
        CollectDataExcelVo vo2 = new CollectDataExcelVo();
        vo2.setDeviceName("B类设备");
        vo2.setTimestamp(DateUtil.format(new Date()));
        excelList.add(vo2);
 
        writer.writeHeadRow(headList).write(excelList);
        //设置content—type
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset:utf-8");
 
        response.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode("数据集导入模板","UTF-8")+".xlsx");
        ServletOutputStream outputStream= response.getOutputStream();
 
        //将Writer刷新到OutPut
        writer.flush(outputStream,true);
        outputStream.close();
        writer.close();
    }

------------------------------------------------------------------------------------------------------------------

2、读取自定义的模板,如

public static void responseExport(HttpServletResponse response, Workbook workbook, String fileName) throws IOException {
    response.setHeader("Content-Disposition",
            "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx");
    response.setContentType("application/force-download");
    response.setContentType("application/vnd.ms-excel;charset=UTF-8");
    response.setHeader("Pragma", "no-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
    BufferedOutputStream bufferedOutPut = new BufferedOutputStream(response.getOutputStream());
    workbook.write(bufferedOutPut);
    bufferedOutPut.flush();
    bufferedOutPut.close();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1207310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

交直流钳式电流探头的功能介绍

有三种常用技术可用于测量电流&#xff0c;包括串联电阻测量法(也称为分流电阻测量法)、电流互感器测量法和电流探头测量法。这些方法都要求被测电流通过测量传感器&#xff0c;因此它们属于侵入式测量技术。 电流探头是一种非侵入性技术&#xff0c;可以用来测量导线电流&…

Android面试官の小抄,可能是东半球最好的

面试官的小抄&#xff0c;Android面试&进阶一网打尽&#xff0c;让一部分人先学起来 背景 作为一名客户端开发者&#xff0c;能够明显的感觉到小程序这些年对原生市场带来的压迫感&#xff0c;比如现在的创业公司都是小程序探路&#xff0c;成熟了再推进客户端&#xff0…

管理类联考——数学——汇总篇——知识点突破——代数——函数、方程——记忆——一元二次函数

——一元二次函数——【图像→交点】 ——【 a x 2 b x c y ax^2bxcy ax2bxcy二次函数核心在于“图像”&#xff1a;整体可以由&#xff1a; 图像&#xff08;形状&#xff0c;上下&#xff0c;交点&#xff09; ⟹ \Longrightarrow ⟹ △ △ △ ⟹ \Longrightarrow ⟹ 抛…

青少年编程学习 等级考试 信奥赛NOI/蓝桥杯/NOC/GESP等比赛资料合集

一、博主愚见 在当今信息技术高速发展的时代&#xff0c;编程已经成为了一种必备的技能。随着社会对于科技人才的需求不断增加&#xff0c;青少年编程学习正逐渐成为一种趋势。为了更好地帮助青少年学习编程&#xff0c;提升他们的技能和素质&#xff0c;博主结合自身多年从事青…

景联文科技:驾驭数据浪潮,赋能AI产业——全球领先的数据标注解决方案供应商

根据IDC相关数据统计&#xff0c;全球数据量正在经历爆炸式增长&#xff0c;预计将从2016年的16.1ZB猛增至2025年的163ZB&#xff0c;其中大部分是非结构化数据&#xff0c;被直接利用&#xff0c;必须通过数据标注转化为AI可识别的格式&#xff0c;才能最大限度地发挥其应用价…

桶装水订水小程序app,线上预约订水更便捷

桶装水订水小程序app&#xff0c;线上预约订水更便捷。设置好地址&#xff0c;一键订水&#xff0c;工作人员送水到家。还能配送新鲜果蔬&#xff0c;绿色健康有保证。送水软件手机版&#xff0c;提供各种品牌桶装水&#xff0c;在线发起订水服务&#xff0c;由服务人员送水到家…

Mysql词法分析实验(二)

表名叫select123能不能创建一个表&#xff1f; 在 MySQL 中&#xff0c;可以创建一个名为 select123 的表&#xff0c;但由于 SELECT 是 MySQL 的一个保留关键字&#xff0c;通常建议避免使用它作为表名的一部分&#xff0c;以防止潜在的解析错误或混淆。如果确实需要使用这样…

MySQL被攻击后创建数据库报错1044 - Access denied for user ‘root‘@‘%‘ to database ‘xxx‘

MySQL被攻击后创建数据库报错1044 - Access denied for user root% to database xxx 一、问题二、解决过程1、正常过程2、踩坑&#xff08;已经解决问题的可以不看&#xff09; 一、问题 最近数据库被攻击了&#xff0c;业务数据库都没了 还好也不是有重要数据&#xff0c;但再…

Dart利用私有构造函数_()创建单例模式

文章目录 类的构造函数_()函数dart中构造函数定义 类的构造函数 类的构造函数有两种&#xff1a; 1&#xff09;默认构造函数&#xff1a; 当实例化对象的时候&#xff0c;会自动调用的函数&#xff0c;构造函数的名称和类的名称相同&#xff0c;在一个类中默认构造函数只能由…

Perl的LWP::UserAgent库爬虫程序怎么写

Perl的LWP::UserAgent库是一个用于发送HTTP请求的Perl模块。它可以用于编写Web爬虫、测试Web应用程序、自动化Web操作等。以下是一个简单的使用LWP::UserAgent库发送HTTP GET请求的Perl脚本的例子&#xff1a; #!/usr/bin/perluse strict; use warnings; use LWP::UserAgent;# …

年会盛况 | 祝贺2023年中国混凝土年会在重庆顺利召开

2023年11月6日-10日&#xff0c;由中国建筑业协会混凝土分会、全国各省市混凝土行业协会、混凝土杂志社主办的“2023年混凝土行业高质量发展交流会”在重庆顺利召开。来自全国各地约600位砼行精英相聚山城&#xff0c;论坛报告、展位交流、名企观摩&#xff0c;共话行业未来&am…

【数据结构】超详细一文带小白轻松全面理解 [ 二叉搜索树 ]—— [从零实现&逐过程分析&代码演示简练易懂]

前言 大家好吖&#xff0c;欢迎来到 YY 滴数据结构系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴数据结构专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.二叉搜索树的基本概念…

【unity插件】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件

文章目录 前言地址描述Demo 演示Installation 安装如何玩演示用法使用示例完结 前言 一般的shader无法直接使用在UI上&#xff0c;需要在shader中定义特定的面板参数&#xff0c;今天就来推荐github上大佬做的一套开源的一系列UGUI&#xff0c;Shader实现的特效——UIEffect 为…

微信小程序漏洞之accesskey泄露

更新时间&#xff1a;2023年09月08日09:42:52 1. Accesskey泄露漏洞 这篇文章里面都是以我个人的视角来进行的&#xff0c;因为一些原因&#xff0c;中间删了一些东西&#xff0c;肯定有很多不正确的地方&#xff0c;希望大家能理解&#xff0c;也能指正其中的错误。 在以前…

【嵌入式开发学习】__搞了多年嵌入式,才发现全局变量是这样初始化的

最近&#xff0c;有个好学的小伙子突然问了我一个问题&#xff1a; 全局变量的初始值&#xff0c;是在哪里赋值的&#xff1f; 这个问题虽然说不是很重要&#xff0c;但是我很好奇。 为了给讲清楚这个原理过程&#xff0c;我专门建立一个基于 Renesas RH850 的简单工程&…

【vue】 实现 自定义 Calendar 日历

图例&#xff1a;自定义日历 一、标签自定义处理 <div class"date-box"><el-calendar v-model"state.currDate" ref"calendar"><template #header"{ date }"><div class"date-head flex"><div …

网页布局 flex

弹性盒模型 弹性盒模型&#xff08;Flexible Box模型&#xff09;&#xff0c;也被成为flexbox&#xff0c;是一种一维的布局模型&#xff08;也就是说一次只能处理一个维度上的元素布局&#xff0c;一行或者一列&#xff09;。它给flexbox的子元素之间提供了强大的空间分布和对…

CRM系统:助力数据服务企业,打造核心竞争力

近年来&#xff0c;数据服务企业开始走入大众视野。作为企业管理应用热门选手——CRM客户管理系统&#xff0c;可以助力企业实时数据应用先行者&#xff0c;提升业务转化与协同效率&#xff0c;进一步打造核心竞争力。下面我们说说&#xff0c;CRM系统对数据服务企业的作用。 …

运动耳机哪种类型好?2023年热门运动蓝牙耳机推荐

​在现代社会&#xff0c;耳机已经成为了人们生活中的必备数码设备。无论是在工作、学习还是娱乐中&#xff0c;我们都需要用到耳机。而在运动的时候&#xff0c;佩戴耳机更是成为了很多人的标配。那么&#xff0c;什么样的运动耳机最适合我们呢&#xff1f;下面&#xff0c;我…

【iOS】将网络请求封装在一个单例类Manager中(AFNetworking、JSONModel)

项目开发中会请求大量不同的API&#xff0c;若将网络请求三板斧直接写在Controller中会代码十分冗杂&#xff0c;干脆直接将AFNetWorking和JSONModel封装到一个全局的Manager单例类中&#xff0c;在Manager类中进行网络请求和数据解析 导入AFNetworking和JSONModel 参考【iOS…