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

hutool ExcelUtil导出excel二级表头

简介:Hutool是一款十分好用的开发工具集,里面包含了大部分日常开发常用的工具,使用简单方便,可以大大提升日常开发效率,十分推荐大家使用。这里简单总结一下基于Hutool的Excel使用。

一、Hutool依赖

    <!-- Excel导出、导入--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.5</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.0.0</version></dependency>
public static void main(String[] args) {ExcelWriter writer = null;try {writer = ExcelUtil.getWriter(true);// 标题writer.merge(0, 1, 0, 0, "序号", true);writer.merge(0, 1, 1, 1, "合同编号", true);writer.merge(0, 1, 2, 2, "合同名称", true);writer.merge(0, 1, 3, 3, "承包商", true);writer.merge(0, 0, 4, 5, "合同投资", true);writer.merge(0, 1, 6, 6, "动态投资", true);writer.merge(0, 1, 7, 7, "估算投资", true);writer.merge(0, 1, 8, 8, "概算投资", true);writer.merge(0, 0, 9, 10, "工程预算", true);writer.merge(0, 0, 11, 12, "工程结(决)算", true);writer.merge(0, 0, 13, 14, "工程审计金额", true);writer.writeCellValue(4, 1, "总投资");// 设置单元格为表头默认样式,不设置当前单元格样式会与表头不一致writer.setStyle(StyleUtil.createHeadCellStyle(writer.getWorkbook()), 4, 1);writer.writeCellValue(5, 1, "暂定金额");writer.setStyle(StyleUtil.createHeadCellStyle(writer.getWorkbook()), 5, 1);writer.writeCellValue(9, 1, "工程预算");writer.setStyle(StyleUtil.createHeadCellStyle(writer.getWorkbook()), 9, 1);writer.writeCellValue(10, 1, "招标控制价");writer.setStyle(StyleUtil.createHeadCellStyle(writer.getWorkbook()), 10, 1);writer.writeCellValue(11, 1, "结算金额");writer.setStyle(StyleUtil.createHeadCellStyle(writer.getWorkbook()), 11, 1);writer.writeCellValue(12, 1, "决算金额");writer.setStyle(StyleUtil.createHeadCellStyle(writer.getWorkbook()), 12, 1);writer.writeCellValue(13, 1, "结算审计");writer.setStyle(StyleUtil.createHeadCellStyle(writer.getWorkbook()), 13, 1);writer.writeCellValue(14, 1, "决算审计");writer.setStyle(StyleUtil.createHeadCellStyle(writer.getWorkbook()), 14, 1);writer.passCurrentRow();writer.passCurrentRow();List<String> row1 = CollUtil.newArrayList("一","","建安投资","承包商1","23","30","54.2","23","22","33","124","203","345","55","5555");List<String> row2 = CollUtil.newArrayList("二","","建安投资","承包商1","23","30","54.2","23","22","33","124","203","345","55","5555");List<List<String>> rows2 = CollUtil.newArrayList(row1,row2);writer.write(rows2, false);// 写出流writer.flush(new FileOutputStream(new File("d:/复杂表头.xlsx")));} catch (Exception e) {} finally {if (writer != null) {writer.close();}}
}

相关文章:

hutool ExcelUtil导出excel二级表头

简介&#xff1a;Hutool是一款十分好用的开发工具集&#xff0c;里面包含了大部分日常开发常用的工具&#xff0c;使用简单方便&#xff0c;可以大大提升日常开发效率&#xff0c;十分推荐大家使用。这里简单总结一下基于Hutool的Excel使用。 一、Hutool依赖 <!-- Excel导出…...

《开箱元宇宙》:认识香港麦当劳通过 The Sandbox McNuggets Land 的 Web3 成功经验

McNuggets Land 是 The Sandbox 于 2023 年发布的最受欢迎的体验之一。在本期的《开箱元宇宙》系列中&#xff0c;我们采访了香港麦当劳数位顾客体验暨合作伙伴资深总监 Kai Tsang&#xff0c;来了解这一成功案例背后的策略。 在不断发展的市场营销和品牌推广领域&#xff0c;不…...

基于python+TensorFlow+Django卷积网络算法+深度学习模型+蔬菜识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 介绍了TensorFlow在图像识别分类中的应用&#xff0c;并通过相关代码进行了讲解。通过TensorFlow提供的工具和库&am…...

Python异常处理:三种不同方法的探索与最佳实践

Python异常处理&#xff1a;三种不同方法的探索与最佳实践 前言 本文旨在探讨Python中三种不同的异常处理方法。通过深入理解各种异常处理策略&#xff0c;我们可以更好地应对不同的编程场景&#xff0c;选择最适合自己需求的方法。 异常处理在编程中扮演着至关重要的角色。合…...

一文图解爬虫(spider)

—引导语 互联网&#xff08;Internet&#xff09;进化到今天&#xff0c;已然成为爬虫&#xff08;Spider&#xff09;编制的天下。从个体升级为组合、从组合联结为网络。因为有爬虫&#xff0c;我们可以更迅速地触达新鲜“网事”。 那么爬虫究竟如何工作的呢&#xff1f;允许…...

腾讯云3年期轻量应用服务器优惠(薅羊毛教程)

腾讯云轻量应用服务器特价是有新用户限制的&#xff0c;所以阿腾云建议大家选择3年期轻量应用服务器&#xff0c;一劳永逸&#xff0c;免去续费困扰。腾讯云轻量应用服务器3年优惠可以选择2核2G4M和2核4G5M带宽&#xff0c;3年轻量2核2G4M服务器540元&#xff0c;2核4G5M轻量应…...

多个div横向排列的几种方法

以下面这组 div 为例&#xff0c;group的高度由内容撑开 <div id"group"><div id"div1">div1</div><div id"div2">div2</div><div id"div3">div3</div> </div>显示结果如下为上下排…...

【编程语言发展史】Go语言的发展历史

目录 Go的起源 Go语言发展时间轴 logo Go的起源 Go 语言起源 2007 年&#xff0c;并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目&#xff0c;即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的 …...

深入理解JVM虚拟机第二十三篇:详解JVM当中的栈顶缓存技术

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JVM 本文章简介:话不多说,让我们讲清楚JVM当中与操作数栈相关的字节码指令…...

通过easyexcel导出数据到表格

这篇文章简单介绍一下怎么通过easyexcel做数据的导出&#xff0c;使用之前easyui构建的歌曲列表crud应用&#xff0c;添加一个导出按钮&#xff0c;点击的时候直接连接后端接口地址&#xff0c;在后端的接口完成数据的导出功能。 前端页面完整代码 let editingId; let request…...

C++入门学习(4)引用 (讲解拿指针比较)

上期回顾 在学习完函数重载之后&#xff0c;我们可以使用多个重名函数进行操作&#xff0c;会发现C真的是弥补了好多C语言的不足之处&#xff0c;真的不禁感概一下&#xff0c;时代的进步是需要人去做出改变的&#xff0c;而不是一味的使用啊&#xff01;所以我们今天继续学一下…...

温度采集DS18B20

/******************************************************************** * 描述 : 该文件实现了用温度传感器件DS18B20对温度的采集&#xff0c;并在数码管上显示出来。 ***********************************************************************/ #include<reg52.h&…...

同城跑腿服务预约小程序的作用如何

无论是互联网服务化加快还是前几年疫情冲击&#xff0c;在同城生活服务场景中出现了很多商机&#xff0c;如外卖跑腿、校园跑腿、代买代送等&#xff0c;无论公司还是个人都借势不断提升自己品牌的影响力&#xff0c;并且依赖朋友圈不断提升生意营收。 同城跑腿品牌不少&#…...

前后端开发迭代

要创建一个具有登录和注册功能的前端网页&#xff0c;并使用Go语言编写后端来支持它&#xff0c;你需要分两部分来进行&#xff1a;前端开发和后端开发。下面我将提供一个基本的指导方案。 前端开发 前端部分主要涉及HTML、CSS和JavaScript。你可以使用框架如React或Vue来简化…...

Git可视化界面的操作,SSH协议的以及IDEA集成Git

目录 一. Git可视化界面的操作 二. gitee的ssh key 2.1 SSH协议 2.2 ssh key 三. IDEA集成Git 3.1 分享项目 3.2 下载项目 一. Git可视化界面的操作 上一篇博客只用到了git的命令窗口&#xff0c;现在就来看看可视化窗口要怎么操作。 点击Git GUI Here GUI界面 在g…...

CSS的初步学习

CSS 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结 构分离. CSS 就是 “东方四大邪术” 之化妆术 CSS 基本语法规范: 选择器 若干属性声明 选择器决定针对谁修改 (找谁) 声明决定修…...

小程序样式问题

小程序切换下一个文章或者页面&#xff0c;淡入淡出效果 // detail.js getArticleData: function(articleId) {// 开始淡出效果this.animate(.detail-page, [{ opacity: 1.0, ease: ease-out },{ opacity: 0.0, ease: ease-out }], 500, () > {// 在淡出动画完成后请求文章…...

大数据毕业设计选题推荐-生产大数据平台-Hadoop-Spark-Hive

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

什么是Ribbon的饥饿加载?有什么优势?

目录 一、什么是Ribbon 二、什么是饥饿加载 三、Ribbon饥饿加载的优势 四、Ribbon饥饿加载的劣势 一、什么是Ribbon Ribbon是一个开源的、基于HTTP和TCP的客户端负载均衡工具&#xff0c;它提供了一个简单的、基于配置的负载均衡策略&#xff0c;可以帮助开发人员更轻松地…...

苹果手机安装未上架APP应用测试教程

STEP 2&#xff1a;找到下载的描述文件&#xff08;如果没有找到&#xff0c;请到 设置 - 通用 - 描述文件 中查看&#xff09; STEP 3&#xff1a;安装描述文件 STEP 4&#xff1a;输入解锁密码安装描述文件 STEP 5&#xff1a;同意免责声明&#xff0c;安装描述文件 STEP 6…...

Android14前台服务类型缺失异常解析与实战修复

1. Android14前台服务类型强制声明机制解析 最近在适配Android14时踩了个坑&#xff1a;原本运行良好的前台服务突然崩溃&#xff0c;抛出了MissingForegroundServiceTypeException异常。这个问题困扰了我整整两天&#xff0c;后来才发现是Android14新增的前台服务类型强制声明…...

C3D行为识别实战:UCF101视频数据预处理与帧提取全流程

1. 认识UCF101数据集与行为识别基础 第一次接触视频行为识别时&#xff0c;我对着UCF101数据集发了半天呆——这堆视频文件该怎么变成模型能理解的格式&#xff1f;后来才发现&#xff0c;预处理才是决定模型效果的关键第一步。UCF101作为行为识别领域的"MNIST"&…...

保姆级教程:新手小白学习人工智能,推荐哪些入门书籍和课程?适合零基础的有哪些?

保姆级教程&#xff1a;新手小白学习人工智能&#xff0c;推荐哪些入门书籍和课程&#xff1f;适合零基础的有哪些&#xff1f; 标签&#xff1a;#人工智能、#深度学习、#自然语言处理、#神经网络、#机器学习、#计算机视觉、#ai### 一、零基础必看入门书籍&#xff1a;侧重易懂…...

Rust 并发编程

Rust 并发编程 引言 Rust 是一种系统编程语言,以其高性能、内存安全性和并发特性而闻名。在多核处理器日益普及的今天,并发编程已成为软件开发的重要领域。本文将深入探讨 Rust 并发编程的各个方面,包括并发模型、同步机制和实际应用。 Rust 的并发模型 Rust 的并发模型…...

GitHub新手避坑指南:从Fork到提交PR,手把手教你参与开源项目(含SSH配置全流程)

GitHub开源贡献实战&#xff1a;从零完成第一次PR的全流程解析 第一次参与开源项目就像踏入一个充满活力的开发者社区&#xff0c;既兴奋又忐忑。上周我帮助一位同事提交了他的首个GitHub PR&#xff0c;看着他成功合并代码时的那种成就感&#xff0c;让我决定写下这篇详尽的指…...

告别Keil单调调试:用Ozone + J-Link可视化你的FreeRTOS任务状态(附工程配置避坑点)

告别Keil单调调试&#xff1a;用Ozone J-Link可视化你的FreeRTOS任务状态&#xff08;附工程配置避坑点&#xff09; 嵌入式开发中&#xff0c;调试环节往往占据大量时间成本。当项目复杂度上升到RTOS层面时&#xff0c;传统的Keil调试界面显得力不从心——开发者需要反复切换…...

10 分钟出稿!PaperXie AI 答辩 PPT 生成,本科生的毕业开挂神器

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 毕业论文答辩的终极考验&#xff0c;从来不是论文写得多好&#xff0c;而是你的 PPT 能不能让导师眼前一亮。多少人熬过了选题…...

从“相爱相杀”到“黄金三角”——将协同能力打造为个人与团队的核心竞争力

该文章同步至OneChan ——在芯片开发的复杂系统中&#xff0c;成为不可替代的连接者与放大器 当单个技术专家的个人英雄主义让位于系统性的团队协同&#xff0c;你所在的团队就具备了征服最复杂芯片挑战的终极武器。 引言&#xff1a;那个“全明星”团队的溃败 我曾见证过一个…...

边缘计算与软件开发:新职业场景——软件测试从业者的转型指南

一、边缘计算重构软件测试疆域随着物联网设备突破300亿大关&#xff08;2025年数据&#xff09;&#xff0c;边缘计算以28.3%的年复合增长率重塑IT架构。到2026年&#xff0c;75%的新建企业系统将采用“云-边-端”三级协同架构&#xff0c;这对软件测试领域带来根本性变革&…...

FreeMoCap入门指南:5步搞定免费开源动作捕捉系统

FreeMoCap入门指南&#xff1a;5步搞定免费开源动作捕捉系统 【免费下载链接】freemocap Free Motion Capture for Everyone &#x1f480;✨ 项目地址: https://gitcode.com/GitHub_Trending/fr/freemocap 想要体验专业级的动作捕捉技术&#xff0c;但又担心高昂的成本…...