根据NVeloDocx Word模板引擎生成Word(六-结束)

news2024/12/23 4:24:51

前面几篇已经把E6开发平台配套的Word模版隐藏NVeloDocx的基础用法介绍了一遍,这些基础用法基本上可以完全覆盖实际业务的绝大部分需求。所以我们这一篇就介绍一些边边角角的内容,给本系列来一个首尾。

本篇的主要内容有:

1、汇总计算:比如我们经常遇到的Word报告中的配件清单,需要能够计算总耗时,总费用等等;

2、E6脚本:基于NVeloDocx,我们同样可以使用E6脚本,比如使用E6脚本进行日期格式化,进行金额字段的小写数字转换成中文等等;

3、水印:水印也可以通过NVelocity命令进行填充;

下面我们来一个个进行介绍:

汇总计算:

比如我们在使用子表数据填充Word表格的时候,很多时候需要显示一个汇总行,甚至于某些情况下还需要把金额转换成大写形式,如下图:

子表最后一行是汇总行

那么我们怎么设置这个模板呢?还记得前面《根据NVeloDocx Word模板引擎生成Word(二)》中已经介绍过子表输出到Word表格时的模板语法,这里也是一样的,只不过要汇总我们必须要一个新变量(下图模版中的$total)来保存每个循环的叠加汇总。

 模版

变量的定义自然需要再循环开始前进行定义,所以我们在#foreach前定义变量#set($total=0)。

变量的汇总我们在#end前,先把要汇总的字段值取出来赋值给变量$baofei,也可以不用这么做,这么做的原因主要是让后面的汇总命令短一点,不易出错而已。所以下面两种写法都是对的:

第一种:就是上图中的这种:

#set($baofei=${child.GetValue($item,"baodanbaofei")})

#set($total=${utils.Add($total, $baofei)}) # 这里表示把total变量和保费变量相加后再复制给total

第二种直接相加(不建议这种方式)

#set($total=${utils.Add($total, ${child.GetValue($item,"baodanbaofei")})})

这里为了实现两个变量相加,我们引入了一个工具方法utils.Add(参数1,参数2),为什么要这么做呢?因为如果直接使用#set($total = $total + $baofei)的话,就可能失败,我总觉得这是NVelocity的一个Bug!!!

汇总后要把汇总金额转成大写,通过工具方法${utils.ToCapital($tatal)} 即可,如上面的模版图。


E6脚本

在NVeloDocx模版引擎中也可以使用E6脚本,最常见的比如显示当前日期,比如报告日期就可以使用E6脚本来实现:

报告日期 

模版如下:通过工具方法 ${script.Exc("Today()")} 来执行一个E6脚本,其中 "Today()"就是要执行的E6脚本。

模版 


水印:

比如要在生成的Word中显示水印信息,当前“用户名+用户编号”这种显然是一个动态的信息,就可以通过设置水印为E6脚本,生成Word时再进行动态计算。

 水印效果图

在Word中设置水印的方法:

设置中-水印菜单

 选择自定义水印

设置水印“文字”为E6脚本 

在水印设置时,就可以设置水印“文字”为执行E6脚本:

${script.Exc("UserName()+UserNO()")}

其中:

UserName():E6脚本,表示当前登录用户的姓名;

UserNO():E6脚本,表示当前登录用户编号;

这样生成的Word文档中,水印就会自动替换成当前操作用户的用户名+用户编号。

总算完结了,给有需要的朋友一个参考。

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

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

相关文章

Nacos1.X中对NacosNamingService的实现

Nacos服务注册与发现的实现原理图 服务注册与发现的功能: 服务实例启动时注册到服务注册表、关闭时则注销(服务注册)服务注册中心根据服务实例定时发送的心跳包,实现健康检测(健康检查BeatReactor中的BeatTask&#x…

打造最佳自闭症患全寄宿学校:为孩子的未来保驾护航

在自闭症儿童教育的广阔领域里,寻找一所能够全方位关注孩子成长、为他们的未来奠定坚实基础的学校,是许多家庭的心愿。广州的星贝育园自闭症儿童寄宿制学校,正是这样一所致力于成为最佳的自闭症儿童全寄宿学校,它以独特的教育理念…

软件测试学习笔记丨Postman基础使用

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32096 一、Postman基础使用 1.1 简介 Postman是一款流行的API测试工具和开发环境,旨在简化API开发过程、测试和文档编制。优势: Postman可以快速构建请求&#xff0c…

使用 React Testing Library 测试自定义 React Hooks

自定义 React hooks为开发人员提供了在多个组件之间提取和重用常见功能的能力。然而,测试这些 hooks可能会有些棘手,特别是对于测试新手来说。在本文中,我们将探讨如何使用 React Testing Library 测试自定义 React hook。 测试 React组件 首…

录屏工具大揭秘:录屏快捷键、工具使用感受与建议

在繁忙的工作中,我们常常需要记录下一些重要的操作步骤或精彩瞬间,这时录屏工具就派上了用场;接下来,我将以轻松愉悦的方式,为大家介绍四款常用的录屏工具及其快捷键,并分享使用感受与建议: 录…

OM6626国产低功耗蓝牙对比NRF52832/NRF52810

OM6626 是一款超低功耗的蓝牙soc 主要特性: 支持BLE5.3支持SIG Mesh支持2.4G长包主频64Mhz,80KB RAM主要应用在esl电子价签,IoT模组、CGM、高报告率HID设备 PUM特点 1.71~3.6v供电电压1秒间隔广播平均电流:9uA;1秒间…

架构设计 - 常用日志收集方案选型对比与推荐

目录 1. 常用组合1.1 ELK Stack -> Elastic Stack1.2 EFK Stack1.3 Graylog1.4 PLG 日志系统1.5 Splunk1.6 Filebeat ELK1.7 AWS CloudWatch Logs1.8 阿里云日志服务1.9 腾讯云 CLS(日志服务) 2. 推荐 日志收集是系统监控和调试中的关键环节。常见的…

心觉:以终为始,帮你精准实现目标

Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作169/1000天 假设你的目标是 一年内赚到150万。我们可以通过“以终为始”和“以始为终”的结合来帮助你实现这个目标 以下是完整的…

VuePress搭建文档网站/个人博客(简单配置、易上手)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

sourcetree配置ssh连接gitee

使用PuttyGen.exe生成的公钥私钥格式和git文档方法生成的不一样, SSH 公钥设置 | Gitee 帮助中心 gitee方法生成的公钥类似: ssh-ed25519 AAAA***5B Gitee SSH Key PuttyGen.exe生成的: 公钥 ---- BEGIN SSH2 PUBLIC KEY ---- Comment:…

15个顶级ChatGPT学术提示词指令,让学术研究与撰写论文,轻松上手,效率翻倍

大家好,我将通过这篇文章详细介绍如何有效利用ChatGPT来增强学术写作的各个环节。从论文陈述的精炼到数据的深入分析,从研究主题的探索到论文各部分的撰写,为大家一步一步展示如何通过这些工具来提升研究工作的质量和效率。 1.完善论文陈述: 输入你的初步论文陈述,ChatG…

【YashanDB知识库】数据库获取时间和服务器时间不一致

本文转自YashanDB官网,具体内容可见数据库获取时间和服务器时间不一致 【问题分类】功能使用 【关键字】服务器时间、数据库时间 【问题描述】数据库获取的时间和服务器时间不一致。 【问题原因分析】YashanDB并没有时区的概念,数据库的时间以数据库启…

红黑树的删除

文章目录 前言一.删除的节点左子树右子树都有二.删除的节点只有左/右子树删除调整操作 三.删除的节点没有孩子1.删除的节点为红色2.删除的节点为黑色1).兄弟节点为黑色(1).兄弟节点至少有一个红色的孩子节点LL型RR型RL型LR型 (2).兄弟节点没有孩子或所有孩子为黑色 2).兄弟节点…

Redis实现发布/订阅功能(实战篇)

前言 博主在学习 Redis 实现发布订阅功能的时候,踩了太多的坑。 不是讲解不详细,看的一知半解;就是代码有问题,实际压根跑不起来! 于是博主萌生了自己写一个最新版且全程无错的博客供各位参考。希望各位不要把我才过…

C语言浮点型数据在内存中的存储(23)

文章目录 前言一、浮点数在内存中的存储练习引入浮点数的存储浮点数存的过程 二、浮点数取的过程E不全为0或不全为1E全为0E全为1 三、再回顾练习总结 前言 哎,之前写了一篇,可是中途退出没保存,只能再写一遍了~   浮点数在内存中的存储跟整…

智汇创想pytest接口自动化测试框架

本测试框架是基于pytest搭建的接口自动化框架,对象为深圳智汇创想官方网站。深圳智汇创想科技有限责任公司(深圳智汇创想科技有限责任公司),是一家专注于跨境电子商务的集团公司,全球电商平台多品类多品牌的零售商&…

什么是APT攻击,有哪些防御策略

在数字化时代,网络安全已成为国家、企业和个人不可忽视的重要议题。其中,高级持续性威胁(APT)攻击以其隐蔽性强、攻击规模大、持续时间长等特点,成为网络安全领域最为棘手的问题之一。面对APT攻击的严峻挑战&#xff0…

Unity 场景优化(1) game视口的Statistics 内容介绍

Unity的 Statistics (stats) Unity是多线程的。但是控制使用unity的api必须在主线程中,比如控制物体的transform信息。 Audio Level: DSP Load:数字信号处理(Digital Signal Processing)负载&…

空间视频化趋势理解

「视频空间化」这个趋势不是从现在开始,而是潜在发展了很多年了,而且我个人觉得「视频空间化」的背后其实对应的是「空间视频化」的趋势,所以未来我们还是要注重自己的技术栈中对视频相关处理技术的吸收以及整合,下面是我的几个理…

Jenkins生成html报告

下载插件 1.需要下载插件 html Publisher plugins 2.下载Groovy(设置css样式),默认没有css样式 在Job配置页面,增加构建步骤Execute system Groovy script,在Groovy Command中输入上面命令,即可: System.…