EasyPOI导出报表(二)-合并单元格

上篇讲到EasyPOI导出常规报表,本篇是在此基础上再增加新的东西-合并单元格,这个功能在需求中也很常见。

这里我直接贴逻辑代码:
EasyPOI工具类加上如下方法

   /*** @Description:  excel导出-合并单元格* @param[1] list 数据列表* @param[2] title 报表标题* @param[3] sheetName excel工作表名* @param[4] pojoClass 导出实体类* @param[5] fileName 导出excel文件名称* @param[6] response* @param[7] columns 需要进行合并的列**/public static void exportMerge(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,HttpServletResponse response, Integer[] columns)throws IOException {ExportParams exportParams = new ExportParams(title, sheetName, ExcelType.XSSF);//把数据添加到excel表格中Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);//设置单元格格式setBorder(workbook);//对单元格进行合并--对第一张工作表第2行第columns列开始合并PoiMergeCellUtil.mergeCells(workbook.getSheetAt(0),1,columns);//下载excel文件downLoadExcel(workbook,fileName, response);}

实体类

package com.example.work.entity;import java.math.BigDecimal;
import java.util.Date;import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;@Data
public class Employee {/*** id*/private Integer id;/*** 姓名*/@Excel(name = "姓名")private String name;/*** 性别 1-男;2-女*/@Excel(name = "性别",replace = {"男_1", "女_2"})private Byte sex;/*** 所在部门*/@Excel(name = "所在部门")private String dept;/*** 出生地*/@Excel(name = "出生地")private String address;/*** 出生年月*/@Excel(name = "出生年月",exportFormat = "yyyy-MM-dd",width = 15)@DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")private Date birthDay;/*** 联系电话*/@Excel(name = "联系电话",width = 15)private String phone;/*** 工资*/@Excel(name = "工资(单位:元)",width = 15)private BigDecimal salary;}

controller层

    @GetMapping("/exportMerge")public void exportMerge(HttpServletResponse response){employeeService.exportMerge(response);}

业务层

   @Overridepublic void exportMerge(HttpServletResponse response) {try {//针对要合并的列所对应的字段进行排序List<Employee> list = this.list(new LambdaQueryWrapper<Employee>().orderByDesc(Employee::getDept).orderByDesc(Employee::getAddress));String fileName = "员工工资报表";//需要合并的列Integer []columns ={2,3};EasyPoiUtils.exportMerge(list,null,fileName,Employee.class,fileName,response,columns);}catch (Exception e){throw new RuntimeException("导出失败");}}

数据库表数据
在这里插入图片描述
接下来启动程序并调用接口,导出结果如下
在这里插入图片描述
这里我是在上篇的基础上粘贴的主要代码,如有需要可先看EasyPOI导出报表第一篇(http://t.csdnimg.cn/2ndg2)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态画出300以内的质数曲线图

用python&#xff1a; # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np import time import os# 定义一个函数来检查一个数是否为质数 def is_prime(n): if n < 2: return False for i in range(2, int(n ** 0.5) 1): if n % i …

【LeetCode】第二高的薪水(数据库)

目录 题目&#xff1a; 方法一 验证一&#xff1a; 验证二&#xff1a; 方法二 验证一&#xff1a; 验证二&#xff1a; 方法三 验证一&#xff1a; 验证二&#xff1a; 题目&#xff1a; 方法一 SELECT DISTINCT Salary AS SecondHighestSalary FROM Employee O…

CRM管理系统如何对商机阶段进行管理?有哪些具体功能?

在任何开展销售的机构中&#xff0c;商机是机构生成实际收益的最重要记录。在典型的B2B机构中&#xff0c;所有商机都必须经历完整的销售周期&#xff0c;从识别热门潜在客户开始&#xff0c;以赢得或失去潜在客户结束。此销售周期内必须完成的活动有&#xff1a;发送产品信息给…

轻量化神奇!看3D模型格式转换工具HOOPS Exchange如何轻松实现减面操作?

现在很多CAD模型都比较复杂&#xff0c;有时候为了一些特殊用途&#xff08;轻量化显示、布尔运算、CAE网格剖分等&#xff09;&#xff0c;需要到对原始模型进行减面操作。在HOOPS Exchange中&#xff0c;就提供了对模型进行减面操作支持&#xff0c;以下内容就是HOOPS Exchan…

每日汇评:黄金多头能否在美国CPI数据发布后占有主动权?

黄金价格再次在2020美元附近找到支撑&#xff0c;因为所有人都在关注美国的通胀数据&#xff1b; 尽管最近美国国债收益率有所上升&#xff0c;但美元仍进一步下跌&#xff1b; 金价保持在21日移动均线和50日移动均线之间&#xff0c;等待区间突破&#xff1b; 在周四早盘的亚洲…

ChatGPT的发展现状

文章目录 前言一、人工智能发展进入新阶段&#xff08;一&#xff09;数据量的增加&#xff08;二&#xff09;计算能力的提升&#xff08;三&#xff09;算法的改进 二、ChatGPT新阶段的内涵&#xff08;一&#xff09;基于大数据的大模型&#xff08;二&#xff09;满足内容生…

Ubuntu 22.04.3 LTS arm64 aarch64 ISO jammy-desktop-arm64.iso 下载

Ubuntu 22.04.3 LTS (Jammy Jellyfish) Daily Build 参考 Are there official Ubuntu ARM / aarch64 desktop images? - Ask Ubuntu

开源C语言库Melon之日志模块

本文向大家介绍一个名为Melon的开源C语言库的日志模块。 简述Melon Melon是一个包含了开发中常用的各类组件的开源C语言库&#xff0c;支持Linux、MacOS、Windows系统&#xff0c;可用于服务器开发亦可用于嵌入式开发&#xff0c;无第三方软件依赖&#xff0c;安装简单&…

初识QT。

文章目录 前言一、QWidget1、了解内容main文件中的基本内容。.pro项目文件的内容。mywidget.h文件内容。命名规范和快捷键Qt助手 2、button按钮3、对象树4、信号和槽5、自定义信号和槽函数拓展 6、Lambda表达式7、练习 二、QMainWindow1、菜单栏和菜单项2、工具栏3、状态栏4、铆…

路由器实验总结(静态路由配置)

1、静态路由的配置 R2(config)#int s0/0/0 R2(config)#ip add 192.168.3.2 255.255.255.0 R2(config)# no shut R1(config)#int s0/0/0 R1(config)#ip add 192.168.3.1 255.255.255.0 R1(config)# no shut串口的配置是这样的&#xff0c;静态路由如下&#xff1a; R2(config)#…

2024年中科大分子生物研究生考试建议

文章目录 0.2023年复习题及考试重点1.2022复习题2.2021复习题3.2020复习题4.2018复习题5.2015-2016复习题6.Key:复习重点7.随堂测验-平时成绩 分子生物学复习资料及往年考题 0.2023年复习题及考试重点 更新中~ 1.2022复习题 1.分子生物学复习资料及往年考题&#xff1a;&…

基于SSM的好例文共享平台的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…