1. 描述
1.1 版本
报表服务器版本 | JAR 包版本 | 插件版本 |
---|---|---|
10.0 | 2019-08-01 | V1.1 |
1.2 应用场景
把一些常用的函数放到插件里面来,方便用户使用。
使用concat('明','天')函数,效果如下图所示:
2. 插件介绍编辑
2.1 插件安装
点击下载插件:自定义函数集合插件
设计器插件安装方法参照:设计器插件管理
服务器安装插件方法参照:服务器插件管理
2.2 操作方法
右键单元格,选择单元格元素>插入公式,在弹出的公式定义界面,点击全部函数,鼠标左键双击函数名即可插入函数,如下图所示:
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('明','天'),返回明天。
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]
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位的随机不固定字符串。
3.25 DecryptDes
1)说明
DES 解密。
DecryptDes(参数1,参数2):第一个参数为要解密的文本,第二个参数为解密所需要的 key。
2)示例
如下图所示,DecryptDes(A1,B1):返回123
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):返回两个黄鹂鸣翠柳