当前位置: 首页 > 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();}}
}
http://www.lryc.cn/news/226598.html

相关文章:

  • 《开箱元宇宙》:认识香港麦当劳通过 The Sandbox McNuggets Land 的 Web3 成功经验
  • 基于python+TensorFlow+Django卷积网络算法+深度学习模型+蔬菜识别系统
  • Python异常处理:三种不同方法的探索与最佳实践
  • 一文图解爬虫(spider)
  • 腾讯云3年期轻量应用服务器优惠(薅羊毛教程)
  • 多个div横向排列的几种方法
  • 【编程语言发展史】Go语言的发展历史
  • 深入理解JVM虚拟机第二十三篇:详解JVM当中的栈顶缓存技术
  • 通过easyexcel导出数据到表格
  • C++入门学习(4)引用 (讲解拿指针比较)
  • 温度采集DS18B20
  • 同城跑腿服务预约小程序的作用如何
  • 前后端开发迭代
  • Git可视化界面的操作,SSH协议的以及IDEA集成Git
  • CSS的初步学习
  • 小程序样式问题
  • 大数据毕业设计选题推荐-生产大数据平台-Hadoop-Spark-Hive
  • 什么是Ribbon的饥饿加载?有什么优势?
  • 苹果手机安装未上架APP应用测试教程
  • asp.net core自定义授权过滤器
  • SW如何显示样条曲线的控标
  • CSS 的 link 标签放在 head 标签之间的作用
  • 【VS2019 Qt5 VTK9.2】临时解决配置相关问题的简单方法
  • 国际版腾讯云/阿里云:云解析DNS是什么
  • 深度学习之基于Django+Tensorflow商品识别管理系统
  • postman 参数化使用csv导入外部数据
  • C语言概述
  • elasticsearch分词器
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • C++17中std::optional的使用