导出Excel实现单元格自动合并(EasyExcel)

devtools/2025/1/14 1:05:08/

前言

    EasyExcel实现单元格合并的导出。效果如下:
在这里插入图片描述


一、EasyExcel是什么?

    这个我就不介绍了,阿里出的,但是据说现在EasyExcel停止维护了,不过不要紧,目前依然好用。后期可能被FastExcel替代,开发这个的团队好像就是EasyExcel那一波人。

二、使用步骤

1.引入库

    easyExcel依赖引入,注意其实poi依赖也最好引入,但是要注意版本差异。

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId>
</dependency>

2.导出实现

1. controller:

/*** 导出分区工单分类关键指标分析数据(不绕社区)*/@ResourceAction(id = "exportYearMonthParkStageKeyCount", name = "导出分区工单分类关键指标分析数据")@GetMapping("/exportYearMonthParkStageKeyCount")public void exportYearMonthParkStageKeyCount(WorkOrderCountQueryRequestVo requestVo, HttpServletResponse response) {try {// 设置响应头response.setContentType("application/vnd.ms-excel");response.setCharacterEncoding("utf-8");String fileName = URLEncoder.encode(DateUtil.format(DateUtil.date(), DatePattern.PURE_DATETIME_PATTERN) + "关键指标分析导出" + ".xlsx", StandardCharsets.UTF_8).replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename=" + fileName);//组织导出数据Map<String, Object> exportDataMap = orderService.exportYearMonthParkStageKeyCount(requestVo);List<List<String>> headList = (List<List<String>>) exportDataMap.get("headList");List<List<Object>> dataList = (List<List<Object>>) exportDataMap.get("dataList");ExcelWriterBuilder excelWriterBuilder = EasyExcel.write(response.getOutputStream());excelWriterBuilder.registerWriteHandler(new CustomCellWriteHeightStrategy((short) 30, (short) 30)).registerWriteHandler(new CustomCellWriteWidthStrategy()).registerWriteHandler(new CustomCellWriteHandler(2,0,dataList.size()));excelWriterBuilder.head(headList).sheet("关键指标分析").doWrite(dataList);} catch (Exception e) {throw new RuntimeException("导出分区工单分类关键指标分析数据失败");}}

2. serviceImpl:

public Map<String, Object> exportYearMonthParkStageKeyCount(WorkOrderCountQueryRequestVo requestVo) {Map<String, Object> dataMap = new HashMap<>();String yearMonthStr = requestVo.getYearMonthStr();String allHead = "关键指标分析-";Integer type = requestVo.getType();String rateHeadName = "";if (type != null){//1计划,2应急if (type == 1){allHead += "计划工单\n";rateHeadName = "计划工单完成率";}if (type == 2){allHead += "应急工单\n";rateHeadName = "应急工单完成率";}}allHead += 

http://www.ppmy.cn/devtools/150278.html

相关文章

【MySQL基础篇】十三、用户与权限管理

文章目录 Ⅰ. 认识用户管理1、概念2、mysql 中的用户信息 Ⅱ. 用户的操作1、创建用户2、删除用户3、修改密码举例 Ⅱ. 刷新指令 -- flush privilegesⅢ. 认识权限管理1、概念2、MySQL权限信息以及权限表3、MySQL授权规则4、MySQL权限检查机制 Ⅳ. 权限的操作1、查看用户现有权限…

Swift Protocols(协议)、Extensions(扩展)、Error Handling(错误处理)、Generics(泛型)

最近在学习 Swift&#xff0c;总结相关知识 1. Protocols&#xff08;协议&#xff09; 1.1 协议的定义和实现 协议&#xff08;protocol&#xff09; 是一种定义方法和属性的蓝图&#xff0c;任何类、结构体或枚举都可以遵循协议。遵循协议后&#xff0c;需要实现协议中定义…

晨辉面试抽签和评分管理系统之四:考生自助抽签

晨辉面试抽签和评分管理系统&#xff08;下载地址:www.chenhuisoft.cn&#xff09;是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…

【Word_笔记】Word的修订模式内容改为颜色标记

需求如下&#xff1a;请把修改后的部分直接在原文标出来&#xff0c;不要采用修订模式 步骤1&#xff1a;打开需要转换的word后&#xff0c;同时按住alt和F11 进入&#xff08;Microsoft Visual Basic for Appliations&#xff09; 步骤2&#xff1a;插入 ---- 模块 步骤3&…

【redis初阶】浅谈分布式系统

目录 一、常见概念 1.1 基本概念 2.2 评价指标&#xff08;Metric&#xff09; 二、架构演进 2.1 单机架构 2.2 应用数据分离架构 2.3 应用服务集群架构 2.4 读写分离/主从分离架构 2.5 引入缓存 ⸺ 冷热分离架构 2.6 数据库分库分表 2.7 业务拆分 ⸺ 引入微服务 redis学习&…

Java 如何传参xml调用接口获取数据

传参和返参的效果图如下&#xff1a; 传参&#xff1a; 返参&#xff1a; 代码实现&#xff1a; 1、最外层类 /*** 外层DATA类*/ XmlRootElement(name "DATA") public class PointsXmlData {private int rltFlag;private int failType;private String failMemo;p…

PyCharm 的安装与使用(Window)

1 PyCharm 简介 PyCharm 是一款由 JetBrains 公司开发的专门用于 Python 语言开发的集成开发环境&#xff08;IDE&#xff09;。以下是其相关介绍&#xff1a; 1.1 特点与功能 智能代码编辑&#xff1a;提供高度智能化的代码编辑器&#xff0c;支持语法高亮、自动补全、代码重…

多跳问答中的语言模型知识编辑增强

人工智能咨询培训老师叶梓 转载标明出处 大模型在整合实时知识更新方面常常遇到困难&#xff0c;这可能导致回答过时或不准确。尤其当处理多跳问题时&#xff0c;挑战进一步增加&#xff0c;因为这类问题需要模型更新和整合与问题相关的多个知识点。图 1为传统基于相似度的搜索…