历史版本3 :自定义函数集合 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

 1. 描述

1.1 版本

报表服务器版本 JAR 包版本插件版本
10.02019-08-01V1.1

1.2 应用场景

把一些常用的函数放到插件里面来,方便用户使用。

使用concat('明','天')函数,效果如下图所示:

2020-04-09_23-16-08.png

目录:

2. 插件介绍编辑

2.1 插件安装

点击下载插件:自定义函数集合插件

设计器插件安装方法参照:设计器插件管理

服务器安装插件方法参照:服务器插件管理

2.2 操作方法

右键单元格,选择单元格元素>插入公式,在弹出的公式定义界面,点击全部函数,鼠标左键双击函数名即可插入函数,如下图所示:
2020-04-09_23-13-47.png

2.3 函数简介

函数名
简介  
Concat该函数中可以使用 JavaScript 脚本,避免嵌套各种 IF、SWITCH 函数的写法
Unicode返回对应于文本的第一个字符的数字
Unichar返回给定数值引用的 Unicode 字符
Search返回第一次找到特定字符或文本字符串处的字符编号,以 start_num 开头
StringMatch判断字符串是否符合给定的正则表达式
Isodd如果参数 number 为奇数,返回 TRUE,否则返回 FALSE
Iseven如果参数 number 为偶数,返回 TRUE,否则返回 FALSE
Networkdays返回参数 start_date 和 end_date 之间完整的工作日数值,工作日不包括周末和专门指定的假期
Isblank如果参数值为空,则返回 TRUE
NumberToEnglish将数字转换成英文
GetIP传递内置的 sessionID 参数,获取当前访问的用户的 IP 地址
Gcd返回两个或多个整数的最大公约数
Lcm

返回整数的最小公倍数

Quotient返回除法的整数部分
Mround返回舍入到所需倍数的数字
Sqrtpi返回某数与 pi 的乘积的平方根
Sec返回角度的正割值
Csc传回以弧度表示之角度的余割值
Cot返回以弧度表示的角度的余切值
Acot返回数字的反余切值的主值
Factdouble返回数字的双倍阶乘
Roman将阿拉伯数字转换为文字形式的罗马数字
Counta计算范围中不为空的单元格的个数
Countblank计算单元格区域中的空单元格的数量
Mode返回的数组或数据区域中出现频率最高或重复出现值

3. 详细介绍编辑

下面逐条介绍每个函数的使用方法。

3.1 Concat

1)说明

函数将多个区域和/或字符串中的文本组合起来,语法:CONCAT(text1, [text2],…)。例如:=CONCAT('明','天') 将返回明天。

2)示例

concat('明','天'),返回明天。

2020-04-09_23-13-47.png

2020-04-09_23-16-08.png

3.2 Unicode

1)说明

返回对应于文本的第一个字符的数字。

2)示例

StringReverse("abc") 返回cba

3.3 StringFind

1)说明

查找字符串包含的字符串索引。

2)示例

StringFind("ba", "a"):返回 a 在字符串中第一次出现的位置1

StringFind("ba", "c"):表示当查找不到该字符串时返回-1

注:位置从 0 开始数起。即 StringFind("ba", "b")返回 0。

函数可以传递第三个参数,false 表示从尾部开始查找。

3.4 StringMatch

1)说明

StringMatch(字符串,字符串):判断字符串是否符合字符串的正则表达式,结果符合返回 true,反之返回 false。

2)示例

StringMatch("abcdefg", "bc"):返回true

3.5 StringFetch

1)说明

根据正则表达式提取符合的字符串,最终返回一个数组,如果有第三个参数,则表示返回数组中第三个参数表示的索引位置的值。

2)示例

StringFetch("2012-08-12 2012-12 abcde 2012-08-23", "\\d{4}[ /-]{1}\\d{2}([ /-]{1}\\d{2})?"):返回2012-08-12,2012-12,2012-08-23

StringFetch("2012-08-12 2012-12 abcde 2012-08-23", "\\d{4}[ /-]{1}\\d{2}([ /-]{1}\\d{2})?", 2):返回2012-08-23

关于正则表达式的介绍可参考文档:正则表达式定义规则

3.6 StringPinyin

1)说明

StringPinyin(字符串,参数1,参数2):输出给定字符串的拼音。

参数1表示拼音之间的间隔符。

参数2表示拼音的输出格式,1代表不输出音调,-1代表音调用数字表示。

2)示例

StringPinyin("你好啊", "  ", -1):返回ni3  hao3  a1

3.7 StringShortPinyin

1)说明

输出给定字符串的拼音首字母(小写)。

2)示例

StringShortPinyin("你好啊"):返回nha

3.8 StringSwapCase

1)说明

交换字符串中字母的大小写。

2)示例

StringSwapCase("abcDeFg"):返回ABCdEfG

3.9 NumberToEnglish

1)说明

将数字翻译成英文。

2)示例

NumberToEnglish("1234567"):返回One Million, Two Hundred And Thirty-Four Thousand, Five Hundred And Sixty-Seven

3.10 GetIP

1)说明

传递内置的 sessionID 参数,获取 IP 地址。

2)示例

GetIP():返回0:0:0:0:0:0:0:1

3.11 ProcessErrorValue

1)说明

处理返回错误值的公式。一般函数发生错误时,会输出 #ERROR_NAME 之类的,这个函数可以在函数返回值为错误值的时候,输出自定义的值,其他值不变。

2)示例

ProcessErrorValue(SQRT(), "错误的值"):返回错误的值

3.12 JSONPathFinder

1)说明

设计报表时,并非所有的数据都是报表能直接识别的字符串或者数组,有时是以 JSON 格式传递过来的数据,这个时候,我们就需要使用 JSONPathFinder 函数来针对不同的查询条件获取到我们想要的数据。

2)示例

假如有这样的 JSON 结构的数据:见这里。这是一个描述书店的 JSON 数据,现在需要从里面查询出所有价格小于10的书的名字,只需要插入如下公式即可:

JSONPathFinder("http://fine-doc.oss-cn-shanghai.aliyuncs.com/book.json","$.store.book[?(@.price<10)].title")

符合条件的书共有两本,所以该公式将返回一个数组:[Sayings of the Century,Moby Dick]

222

3)JSON Path 查询教程

详细内容可参照:Jayway JsonPath

3.13 MathFrequency

1)说明

统计单词出现的次数和频率。

2)示例

MathFrequency([1, 3, 2, 4, 2], 3):返回1,表示数组中3只出现了一次。

MathFrequency([1, 3, 2, 4, 2], 3,3):返回0.2,表示3出现的频率为 0.2,即如果给定了第三个参数,那么将表示为频率。

3.14 MathVariance

1)说明

求数组中元素的方差。

2)示例

MathVariance(1,1,2,4,5) :返回3.3

3.15 MathStandardDeviation

1)说明

求数组中元素的标准差。

2)示例

MathStandardDeviation(1,2,3,4,5):返回1.5811388300841898

3.16 MathSumOfSquares

1)说明

求数组中元素的平方和。

2)示例

MathSumOfSquares(1,1,2,4,5): 返回47

3.17 MathGeometricMean

1)说明

求数组中元素的几何平均数。

2)示例

MathGeometricMean(1,1,2,4,5):返回2.0912791051825463

3.18 MathMean

1)说明

求数组中元素的算术平均数。

2)示例

MathMean(1,1,2,4,5):返回2.6

3.19 EncryptShaHex

1)说明

SHA 加密。

2)示例

EncryptShaHex(abc):加密结果为da39a3ee5e6b4b0d3255bfef95601890afd80709

3.20 EncryptSha256Hex

1)说明

SHA256 加密。

2)示例

EncryptSha256Hex(abc):加密结果为e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

3.21 EncryptSha384Hex

1)说明

SHA384 加密。

2)示例

EncryptSha384Hex(abc):加密结果为[B@175d5041

3.22 EncryptSha512Hex

1)说明

SHA512加密。

2)示例

EncryptSha512Hex(abc):

加密结果为cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e

3.23 EncryptMd5Hex

1)说明

MD5 加密。

2)示例

EncryptMd5Hex(abc):加密结果为d41d8cd98f00b204e9800998ecf8427e

3.24 EncryptDes

1)说明

DES 加密。

EncryptDes(参数1,参数2):第一个参数为要加密的文本,第二个参数为加密的 key。

2)示例

如下图所示,EncryptDes(A1,B1):返回LDiFUdf0iew=

注:密钥需为8位的随机不固定字符串。

222

3.25 DecryptDes

1)说明

DES 解密。

DecryptDes(参数1,参数2):第一个参数为要解密的文本,第二个参数为解密所需要的 key。

2)示例

如下图所示,DecryptDes(A1,B1):返回123

222

3.26 HtmlFinder

1)说明

HTML 页面元素查找函数。

HtmlFinder(参数1,参数2):第一个参数为要查找的 HTML 页面的地址,第二个参数为查询的 DOM 标记。

2)示例

HtmlFinder("http://www.baidu.com", "a[href]"):可以查找到百度首页的所有超级链接内容。

其他语法规则可以参照:Use selector-syntax to find elements

3.27 Image

将给定的参数转换为图片,支持本地文件、远程文件以及相对路径。

3.28 StringConditionConcat

1)说明

根据条件拼接给定数组中的符合条件的元素,内置参数 index 表示索引位置,item 表示元素值。

2)示例

StringConditionConcat(["两个", "b", "黄鹂", "asd", "鸣翠柳"], index % 2 = 1):返回两个黄鹂鸣翠柳