使用EasyPoi实现Excel的按模板样式导出

1,横向遍历

#fe

使用#fe命令可以实现集合数据的横向拓展,比如模板代码是

{{#fe:maths t.score}}

导出的excel里面就会显示会自当前列,向右拓展,效果可参见下面的导出文件截图

2,横向遍历值

v_fe

使用v_fe命令可以实现不固定列的横向遍历,比如模板代码是

分数ID
{{#fe:maths t.scoret.id}}

这种情况导出的excel就会两列一起向右拓展,效果可参见下面的导出文件截图

3,删除行

方法一:删除空白行

book.getSheetAt(0).removeRow(book.getSheetAt(0).getRow(12))

只是清空第13行内容,行还在

方法二:这行高度设为0

book.getSheetAt(0).getRow(12).setHeight((short)0);

推荐此方法,打印出来的效果就是看不到这行,对于打印功能来说足够了

方法三:shiftRows 删除后下方单元格上移

 book.getSheetAt(0).shiftRows(12,book.getSheetAt(0).getLastRowNum(),5);

api说明

 sheet.shiftRows(startRow,endRow,shiftCount)

参数说明:
startRow:移动的开始行号,从0开始计算, 如果想要删除Excel中的第8行(rownum=7),那么starRow设定为7,即设定为你想删除的那行
endRow: 移动的结束行号,从0开始计算。通过startRow和endRow选定移动的范围。可以用sheet.getLastRowNum:来取得sheet的结尾行号 shiftCount 移动多少行。正数是往下移动的行数,负数是往上移动的行数
这个方法也不能实现真正的删除行

4,日期格式

{{fd:(report_date;yyyy-MM-dd)}}

report_date就是new Date()
通过这个模板命令可以直接转换成想要的日期格式

5,保留几位小数

模板命令

{{#fe:chineses {{fn:(t.score;###.00)}}}}

两个0代表保留两位小数
如果是在sql中处理,那么可以使用round函数,记住一定要加别名

select round(score,2) scoreValue from table

如果是在代码中

String.format("%.2f",(double)(i+70)).toString()

详细代码


def main(){Map<String,Object> map = new HashMap()map.put("class_code","GRADE1")map.put("model","初三")map.put("report_date",new Date())map.put("sample_num",30)map.put("chinese_standard_value",90)map.put("math_standard_value",80)// 数学测试数据def res = []for(int i=0;i<20;i++){def data = ["id":i,"score":String.format("%.2f",(double)(i+70)).toString()]res.add(data)}map.put("maths",res.subList(0,8))map.put("maths"+"2",res.subList(8,16))map.put("maths"+"3",res.subList(16,res.size()))// 语文测试数据def res2 = []for(int i=0;i<20;i++){def data = ["id":i,"hello":i+"Hello","score":(i+80.2589).toString()]res2.add(data)}map.put("chineses",res2.subList(0,8))map.put("chineses"+"2",res2.subList(8,16))map.put("chineses"+"3",res2.subList(16,res2.size()))// return mapdef filePrefix = new Date().format("yyyyMMddHHmmss")def file = resFileGetter.getByName('1690342020350导出测试.xlsx');def templateUrl = file.getAbsolutePath();String sheetName = "班级成绩报告";TemplateExportParams params = excelApi.buildTmpExportParams(templateUrl,sheetName)params.setColForEach(true);def book = ExcelExportUtil.exportExcel(params, map);def fileName =  "班级成绩报告"+filePrefix+".xlsx"ExcelUtils.downLoadExcel(fileName, response, book);
}

模板文件

1690342020350导出测试.xlsx
在这里插入图片描述

导出文件

如下
在这里插入图片描述

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

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

相关文章

ROS前驱前转小车仿真(2D)项目

文章目录 一.官方网址1.ROS官网2.urdf-模型3.rviz-数据可视化4.gazebo-仿真环境5.gmapping-建图6.navigation-导航 二.文件框架三.启动顺序0.依赖包的安装1.手动控制的启动顺序2.建图的启动顺序3.导航的启动顺序 四.urdf-模型文件1.ackermann.xacro-轮子传动的配置2.common_pro…

MAC 推送证书不受信任

配置推送证书的时候&#xff0c;一打开就变成不受信任&#xff0c;搜了很多解决版本。 由于苹果修改相关规定&#xff0c;推送证书 打开Apple PKI - Apple 下载AppleWWDRCA文件&#xff0c;选择G4,双击安装之后&#xff0c;证书已经变为受信任。 AppleWWDRCA(Apple Worldwid…

如何解决过拟合/欠拟合问题

文章目录 1. 什么是过拟合/欠拟合2. 如何防止过拟合3. 如何防止欠拟合 1. 什么是过拟合/欠拟合 过拟合&#xff1a;模型在训练集上表现很好&#xff0c;但在测试集上表现很差&#xff1b;即模型的泛化能力差。欠拟合&#xff1a;模型在训练集上表现很差&#xff0c;没有测试的…

仿VScode MDK背景配色方案

效果如果所示 操作方法&#xff1a;备份后修改~/UV4文件夹下的global.prop&#xff0c;用以下的代码代替。 # properties for all file types indent.automatic1 virtual.space0 view.whitespace0 view.endofline0 code.page936 caretline.visible1 highlight.matchingbraces1…

【数据结构】链表是否有环相关问题

文章目录 快指针走3、4、5步甚至更多可以吗为什么快慢指针一定在入口点相遇![在这里插入图片描述](https://img-blog.csdnimg.cn/ba346dbc9fee425dbb895ae2962e99ce.png) 快指针走3、4、5步甚至更多可以吗 部分情况下可以。 如果这样&#xff0c;相对&#xff08;追及&#xf…

Nginx专题--反向代理(未完成)

反向代理   正向代理&#xff1a;如果把局域网外的 Internet 想象成一个巨大的资源库&#xff0c;则局域网中的客户端要访问 Internet&#xff0c;则需要通过代理服务器来访问&#xff0c;这种代理服务就称为正向代理。 反向代理&#xff1a;其实客户端对代理是无感知的&…

linux下cups 毫秒级频繁自启,导致服务瘫痪,无法使用

主要是没法停止了&#xff0c;&#xff0c;即使stop&#xff0c;它还是会自己重启&#xff0c;&#xff0c;&#xff0c; 所以直接破坏cups.service文件&#xff0c;然后restart&#xff0c;就会发现启动失败了。。 roothighguard-F300-G30:~# cat /lib/systemd/system/cups.s…

8 Linux实操篇-用户管理

8 Linux实操篇-用户管理 文章目录 8 Linux实操篇-用户管理8.1 添加用户8.2 指定/修改密码8.3 删除用户8.4 切换用户8.5 查询用户信息/查看用户8.6 用户组8.7 用户和组相关文件 学习视频来自于B站【小白入门 通俗易懂】2021韩顺平 一周学会Linux。可能会用到的资料有如下所示&am…

tauri在github上进行自动更新打包并发版过程,实战操作避坑

从网上找了很多很多的文章&#xff0c;结果还是入坑了&#xff0c;一个问题找了一天才解决&#xff1a; Error A public key has been found, but no private key. Make sure to set TAURI_PRIVATE_KEY environment variable. 596 ELIFECYCLE  Command failed with exit code…

k8s exam

Pause 容器是 Pod 中的第一个启动的容器&#xff0c;其他所有的用户容器都是其子进程当 Pod 被从节点中删除时&#xff0c;与之关联的 emptyDir 中的数据也将被永久删除。持久存储用PV&#xff0c;PVCService 资源定义了如何访问应用&#xff0c;但实际的网络流量管理和路由是由…

【树莓派】用于处理 I2C、SPI 和 UART 的C++库

一、说明 Raspberry Pi 是一款单板计算机&#xff0c;现在有 4 个修订版和一个简约的零变体。它是不同项目的热门选择&#xff0c;因为它体积小&#xff0c;功耗高&#xff0c;处理速度快&#xff0c;并且是一台完整的基于Linux的计算机。 连接多台单板计算机和/或微控制器的一…

智慧消防:如何基于视频与智能分析技术搭建可视化风险预警平台?

一、背景分析 消防安全是一个重要的话题&#xff0c;涉及到每个人的生活和安全。每年都会发生大量的火灾&#xff0c;给人们带来极大的危害&#xff0c;摧毁了大量的财产&#xff0c;甚至造成了可怕的人员伤亡。而消防安全监督管理部门人员有限&#xff0c;消防安全监管缺乏有…

Java读取外链图片忽略ssl验证转为base64

最近在对接外部接口时遇到返回的图片所在的服务器全都没有ssl证书&#xff0c;导致在前端直接用img标签展示时图片开裂。于是转为通过后端获取&#xff0c;绕过ssl验证之后转为base64返回。记录一下代码段。 package com.sy.ai.common.utils;import cn.hutool.core.codec.Base…

SVN - 记录一下无法提交代码 提示:被锁定(locked)

今天遇到一个问题&#xff0c;svn 在提交代码的时候出现了svn is already locked&#xff0c;导致代码无法提交&#xff08;commit&#xff09;和更新&#xff08;update&#xff09; 主要报错如下&#xff1a; 解决方法&#xff1a; 然后点击 Clean up 选中一下选项&#xff…

List、Numpy、Tensor操作基础

要想代码写的顺手&#xff0c; l i s t 、 n u m p y 、 t e n s o r 的操作一定要烂熟于心 要想代码写的顺手&#xff0c;list、numpy、tensor的操作一定要烂熟于心 要想代码写的顺手&#xff0c;list、numpy、tensor的操作一定要烂熟于心 一、list列表 1.1 list创建 list …

WPF实战学习笔记20-设置首页启动页

文章目录 设置首页启动页增加配置接口添加接口文件&#xff1a;实现接口 配置启动选项 设置首页启动页 增加配置接口 添加接口文件&#xff1a; Mytodo.Common/IConfigureInterface.cs using System; using System.Collections.Generic; using System.Linq; using System.T…

k8s 将pod节点上的文件拷贝到本地

要将 Kubernetes&#xff08;k8s&#xff09;中 Pod 节点上的文件拷贝到本地&#xff0c;可以通过使用 kubectl cp 命令来实现。kubectl cp 命令允许你在本地系统和 Pod 之间复制文件和目录。 下面是使用 kubectl cp 命令的语法&#xff1a; kubectl cp <namespace>/&l…

Linux centos7.x系统 下没有ens33 网卡的解决方案

一、背景 安装完windows11 Centos7.9 版本的双系统之后 , 启动Centos7.9时发现没有网卡信息 , 只有ifcfg-lo网卡的信息 , 这个时候就证明没有网卡信息&#xff0c;或者网卡驱动不匹配(我这里是没有网卡)&#xff0c;所以我们要重新安装 , 安装步骤如下 : 二、安装步骤 1.查…

Android各版本号发布日期及详细更新内容

版本号发布日期版本名称API Level更新内容Android 1.02008年9月23日初始版本初始版本&#xff0c;提供基本的手机功能和应用程序。Android 1.52009年4月30日Cupcake添加了文本输入方法&#xff08;包括虚拟键盘&#xff09;和语音搜索。 改进了网络和蓝牙功能。Android 1.62009…

PHP 药店管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 药品管理系统 是一套完善的web设计系统,系统采用smarty框架进行开发设计&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 PHP 药店管理系统mysql数据库web结构apache计 下载地址…