ureport2報(bào)表簡要使用說明(更新中...)

1.基本概念

1.報(bào)表計(jì)算模型

在設(shè)計(jì)器中單元格之間存在依賴關(guān)系,對(duì)于任意一個(gè)單元格都可以設(shè)置它的左父格與上父格唱较。單元格父格是可選的天梧,默認(rèn)情況下戚丸,單元格的左父格就是其最近左邊與其位于同一行的單元格劫灶;上父格則是其最近上方與其位于同一列的的單元格裸违。如果一個(gè)單元格位于第一行,那默認(rèn)它就沒有上父格本昏,同樣供汛,如果位于第一列,默認(rèn)它就沒有左父格涌穆。打開報(bào)表設(shè)計(jì)器怔昨,選中任意單元格,都可以在其屬性面板看到它的默認(rèn)上父格或左父格宿稀,如下圖所示

2.行類型

在報(bào)表設(shè)計(jì)器中趁舀,選擇任意一行或單元格,點(diǎn)擊右鍵祝沸,就可以在彈出菜單中看類類型的定義矮烹,如下圖所示:

從右鍵菜單中可以看到,設(shè)計(jì)器支持將特定行定義成四種特殊類型罩锐,分別是:標(biāo)題行奉狈、重復(fù)表頭行、重復(fù)表尾行以及總結(jié)行涩惑,這些行類型主要是在分頁時(shí)起作用仁期。

1.標(biāo)題行

所謂標(biāo)題行,就是在報(bào)表計(jì)算后分頁時(shí)只會(huì)出現(xiàn)在第一頁第一行的行境氢,如果定義了多個(gè)行為標(biāo)題行類型蟀拷,那么這些行將在報(bào)表運(yùn)行后分頁輸出時(shí)第一頁最前面插入標(biāo)題行。需要注意的是萍聊,我們在報(bào)表中可以將位于任意位置的行定義成標(biāo)題行问芬,但報(bào)表計(jì)算分頁輸出時(shí),總會(huì)將這些定義為標(biāo)題行的行放在報(bào)表的第一頁最前端顯示寿桨。

2.重復(fù)表頭行

與標(biāo)題行不同的是此衅,定義為重復(fù)表頭行的行,在報(bào)表計(jì)算分頁輸出時(shí)會(huì)將定義成重復(fù)表頭行的行放在每一頁的前端進(jìn)行顯示亭螟。如果當(dāng)前報(bào)表中定義的有標(biāo)題行挡鞍,那么對(duì)于第一頁,標(biāo)題前將位于最上面预烙,其下才是重復(fù)表頭行定義的行

3.重復(fù)表尾行

與重復(fù)表頭行類型墨微,它也會(huì)在報(bào)表計(jì)算分頁輸出時(shí)放在每一頁中顯示,只是它會(huì)在每一頁的最下端顯示扁掸。

4.總結(jié)行

與標(biāo)題行對(duì)應(yīng)翘县,總結(jié)行會(huì)出現(xiàn)在報(bào)表計(jì)算后分頁輸出時(shí)最后一頁的最下端顯示最域。如果當(dāng)前報(bào)表中定義了重復(fù)表尾行,那么在報(bào)表計(jì)算后分頁輸出的最后一頁中總結(jié)后將位于重復(fù)表尾行下方顯示锈麸。

2.表達(dá)式

在報(bào)表使用過程當(dāng)中镀脂,不可避免的要使用函數(shù)及表達(dá)式實(shí)現(xiàn)一些數(shù)據(jù)的計(jì)算,在我們的報(bào)表當(dāng)中忘伞,很多地方都支持編寫表達(dá)式薄翅,比如最典型的我們可以將單元格類型改為“表達(dá)式”,這樣就可以在下面的表達(dá)式編輯器里輸入相應(yīng)的表達(dá)式與函數(shù)氓奈,除此之外翘魄,我們的報(bào)表還允許我們在條件毡代、圖片來源禁添、二維碼數(shù)據(jù)來源等地方使用表達(dá)式,所以學(xué)習(xí)并掌握UReport2中提供的表達(dá)式装获,是制作復(fù)雜報(bào)表的前提伪节。

1.基本語法

1.基本數(shù)據(jù)類型

類型 描述 示例
數(shù)字 可以是一個(gè)整數(shù)光羞,也可以是一個(gè)小數(shù) 1、123怀大、0.121331纱兑,這些都是合法的數(shù)字
字符串 字符串需要用單引號(hào)或雙引號(hào)包裹 'ureport2'、"UReport2"化借、‘UReport2教程’潜慎,這些都是合法的字符串
布爾值 布爾值表示是或否 布爾就兩個(gè):true和false

2.操作符

操作符 描述 示例
+ 求兩個(gè)數(shù)的和,或者是連接兩個(gè)值 21+31蓖康,這就表示求這兩個(gè)數(shù)的和铐炫,結(jié)果就是52,“值:”+331則表示連接兩個(gè)值蒜焊,其結(jié)果就是“值:331”
- 求兩個(gè)數(shù)差 21 - 31倒信,這就表示求這兩個(gè)數(shù)的差,結(jié)果就是-10
* 求兩個(gè)數(shù)的乘積 3*6泳梆,結(jié)果就是18
/ 求兩個(gè)數(shù)除的結(jié)果 6/3鳖悠,結(jié)果就是2,如果除不盡优妙,則會(huì)保留8位小數(shù)
% 求兩個(gè)數(shù)除的余值 5%3乘综,結(jié)果是2;6%2結(jié)果是0

2.三元表達(dá)式

三元表達(dá)式示例 描述
A1>1000 ? "正常值" : "低值" 表達(dá)式計(jì)算時(shí)套硼,先取到A1單元格的值卡辰,判斷值是否大于1000,如果是返回“正常值”字符串,否則返回“低值”字符串
A1>1000 and A1<20000 ? "正常值" : "修正值:"+(A1+100) 條件部分看政,判斷A1值是否大于1000且小于20000朴恳,如果是返回"正常值",否則返回字符串”修正值“與A1值加100后結(jié)果連接的值允蚣,如果A1是2000,那么就返回”修正值:2100“

3.if判斷

if判斷示例 描述
if(A1>1000){return "正常值"} 判斷A1單元格的值是不是大于1000呆贿,如果是返回”正常值“字符串嚷兔,否則什么都不做
f(A1>1000){"正常值"}else{"低值"} 判斷A1單元格的值是不是大于1000,如果是返回”正常值“字符串做入,否則返回”低值“字符串冒晰。
if(A1>1000 and A1<20000){"正常值:"+A1}else if(A>20000 and A1<40000){"超高值"}else{"低值"} 在這個(gè)例子當(dāng)中,條件部分添加了多個(gè)組合條件竟块,同時(shí)elseif多重判斷

4.單元格引用

在報(bào)表當(dāng)中壶运,大多數(shù)的計(jì)算都是針對(duì)單元格或與單元格有關(guān),因?yàn)閳?bào)表中單元格多數(shù)都與數(shù)據(jù)綁定浪秘,而數(shù)據(jù)往往又是多條蒋情,所以計(jì)算后的報(bào)表一個(gè)單元格會(huì)產(chǎn)生多個(gè),這樣對(duì)于單元格的引用就變的比較復(fù)雜耸携。在報(bào)表設(shè)計(jì)器中棵癣,引用的目標(biāo)單元格是相對(duì)當(dāng)前單元格來進(jìn)行計(jì)算的,引用方法就是直接在表達(dá)式里書寫單元格名稱夺衍,比如引用A1單元格狈谊,就直接寫A1即可,如下面的例子:

在上圖當(dāng)中沟沙,我們在D1單元格中輸入表達(dá)式A1河劝,這就表示,在D1單元格里填入相對(duì)當(dāng)前D1單元格的A1單元格的值矛紫,運(yùn)行后的效果如下:

可以看到赎瞎,因?yàn)镈1是A1的子格,A1單元格綁定的數(shù)據(jù)就是分組結(jié)構(gòu)含衔,根據(jù)當(dāng)前D1單元格的位置煎娇,就產(chǎn)生的上圖所示的結(jié)果。如果在D1單元格中輸入B1贪染,那么運(yùn)行后的效果又是下圖的樣子:

通過上面的例子我們可以看到缓呛,某個(gè)單元格的表達(dá)式引用目標(biāo)單元格,首先判斷的是目標(biāo)單元格與其所在單元格是否位于同一行或行杭隙,如果是則直接取對(duì)應(yīng)行或列上目標(biāo)單元格的值哟绊。如果當(dāng)前單元格與目標(biāo)單元格不在同一行或列,那情況又不一樣了痰憎,我們來看下一個(gè)例子票髓。

在上面的例子中攀涵,我們在C2單元格的表達(dá)式中輸入B1,表示取B1單元格的值洽沟,但B1單元格又和C2不在同一行或列上以故,同時(shí)B1單元格展開后會(huì)有多個(gè)值,但B1單元格和C2單元格都擁有一個(gè)共同的父格或間接父格A1(C2單元格的左父格是B2裆操,而B2單元格的左父格又是A1怒详,所以A1是C2單元格的間接左父格),所以它會(huì)取他們共同父格A1下所有B1的值踪区,運(yùn)行結(jié)果如下圖所示:

針對(duì)上面的例子昆烁,如果我們在上面的單元格中輸入C1,那結(jié)果又不一樣缎岗;因?yàn)镃1是C2的上父格静尼,所以將直接取與其位于同一列的上父格單元格的值,運(yùn)行效果如下圖所示:

再看下面的報(bào)表示例:

在上面的例子中传泊,B2單元格表達(dá)里輸入C1鼠渺,因?yàn)锽2和C2既不在同一行或列,也沒有共同的父格或渤,所以B2中將取到所有的C1單元格的值系冗,如下圖所示:

5.單元格坐標(biāo)

為了實(shí)現(xiàn)更為復(fù)雜的單元格引用,設(shè)計(jì)器引用了單元格坐標(biāo)的概念薪鹦。單元格坐標(biāo)掌敬,也是相對(duì)于當(dāng)前單元格來進(jìn)行計(jì)算的,同樣遵循上面的介紹的優(yōu)先取同行池磁、同列或共同父格的原則奔害,一個(gè)標(biāo)準(zhǔn)的單元格坐標(biāo)格式如下:

單元格坐標(biāo)格式:單元格名稱[Li:li,Li-1:li-1,…;Ti:ti,Ti-1:ti-1…]{條件...}

L表示左父格,l表示左父格展示后的序號(hào)地熄,序號(hào)為負(fù)值华临,表示向上位移;T表示上父格端考,t表示上父格展開后的序號(hào)雅潭,序號(hào)為負(fù)值,表示相對(duì)于當(dāng)前單元格向上位移却特,正值則表示向下位移扶供,如果只有左父格,那么直接寫L部分即可裂明;如果只是上父格椿浓,那么前面需要加上“;”號(hào),然后寫T部分,后面的大括號(hào)中是條件部分扳碍,多個(gè)條件之間用and/or連接提岔,表示對(duì)通過坐標(biāo)取到的單元格進(jìn)行條件過濾(如果取到多個(gè)單元格的話),條件部分是可選的笋敞,相關(guān)示例如下:

單元格坐標(biāo)示例 描述
C1[A1:2,B1:1] 在找C1時(shí)先找單元格A1展開后的第2格碱蒙;再找第二個(gè)A1下的B1單元格展開后的第一個(gè)單元格,然后再找這個(gè)B1單元格對(duì)應(yīng)的C1單元格
C2[A1:2,B1:2;C1:3] 在找C2時(shí)夯巷,先找A1單元格展開后的第二格振亮,再找第二個(gè)A1單元格下B2單元格展開后的第二格,再根據(jù)第二個(gè)展開的B2單元格找其下名為C2單元格的左子格鞭莽;然后再找到C1單元格展開后的第三格,再看其下的C2單元格麸祷,取C2單元格的交集
C2[A1:2,B2:2]{C2>1000} 表示取A2單元格展開后的第二格澎怒,再取其下B2單元格展開后第二格,再取B2下所有的C2單元格阶牍,最后再對(duì)取到的C2單元格進(jìn)行條件過濾喷面,只取出C2單元格值大于1000的所有C2單元格。
C2[A1:2,B2:2]{C2>1000 and C2<10000} 表示取A2單元格展開后的第二格走孽,再取其下B2單元格展開后第二格惧辈,再取B2下所有的C2單元格,最后再對(duì)取到的C2單元格進(jìn)行條件過濾磕瓷,只取出C2單元格值大于1000且小于10000的所有C2單元格的值盒齿。

我們來看一個(gè)具體的示例,報(bào)表模版如下:

在上面的報(bào)表模版中困食,在B2單元格表達(dá)式里边翁,我們輸入了C1[A1:2,B1:1],這就表示取A1單元格展開后第二格下B1單元格展開后第一格下對(duì)應(yīng)的C1單元格的值硕盹,所以運(yùn)行后我們可以看到如下圖所示效果:

3.函數(shù)

1.常用函數(shù)

1.count函數(shù)(統(tǒng)計(jì)數(shù)量)

count函數(shù)是對(duì)給定的表達(dá)式在計(jì)算后對(duì)象數(shù)量進(jìn)行統(tǒng)計(jì)符匾。

示例 說明
count(C1) 統(tǒng)計(jì)相對(duì)當(dāng)前所在單元格,目標(biāo)C1單元格數(shù)量
count(C1{age>20}) 統(tǒng)計(jì)相對(duì)當(dāng)前所在單元格瘩例,目標(biāo)C1單元格綁定對(duì)象的age屬性大于20的C1單元格數(shù)量
count(C1,C2) 統(tǒng)計(jì)相對(duì)當(dāng)前所在單元格啊胶,目標(biāo)C1單元格以及C2單元格加在一起的數(shù)量
count(C1{age>20},C2{salary>2000 and degree=='本科'}) 統(tǒng)計(jì)相對(duì)當(dāng)前所在單元格,目標(biāo)C1單元格綁定對(duì)象的age屬性大于20的C1單元格以及C2單元格綁定對(duì)象的salary屬性大于2000同時(shí)degree屬性等于本科的單元格數(shù)量

2.sum函數(shù)(累加)

sum函數(shù)是對(duì)給定的表達(dá)式在計(jì)算后值進(jìn)行累加垛贤,sum函數(shù)要求各個(gè)表達(dá)式計(jì)算后的值必須是數(shù)字焰坪,否則將產(chǎn)生錯(cuò)誤。

示例 說明
sum(C1) 相對(duì)當(dāng)前單元格南吮,取到所有C1單元格值進(jìn)行累加
sum(C1,C2) 相對(duì)當(dāng)前單元格琳彩,取到所有C1和C2單元格的值進(jìn)行累加
sum(C1{age>20}) 相對(duì)當(dāng)前單元格,取到所有綁定對(duì)象屬性age大于20的C1單元格值進(jìn)行累加
sum(C1{age>20},C2{salary>2000 and degree=='本科'}) 相對(duì)當(dāng)前單元格,取到所有綁定對(duì)象屬性age大于20的C1單元格值以及綁定對(duì)象屬性salary大于2000且degree屬性等于本科的C2單元格的值進(jìn)行累加

3.avg函數(shù)(求平均值)

avg函數(shù)是對(duì)給定的表達(dá)式在計(jì)算后值求平均值露乏,avg函數(shù)要求各個(gè)表達(dá)式計(jì)算后的值必須是數(shù)字碧浊,否則將產(chǎn)生錯(cuò)誤。

示例 說明
avg(C1) 相對(duì)當(dāng)前單元格瘟仿,求C1單元格的平均值
avg(C1{age>20}) 相對(duì)當(dāng)前單元格箱锐,取到綁定對(duì)象屬性age大于20的C1單元格值的平均值
avg(C1,C2) 相對(duì)當(dāng)前單元格,求C1和C2單元格的平均值
avg(C1{age>20},C2{salary>2000 and degree=='本科'}) 相對(duì)當(dāng)前單元格劳较,取到所有綁定對(duì)象屬性age大于20的C1單元格值以及綁定對(duì)象屬性salary大于2000且degree屬性等于本科的C2單元格的值進(jìn)行求平均值

4.max函數(shù)(求最大值)

max函數(shù)是對(duì)給定的表達(dá)式在計(jì)算后值求其中的最大值驹止,max函數(shù)要求各個(gè)表達(dá)式計(jì)算后的值必須是數(shù)字,否則將產(chǎn)生錯(cuò)誤观蜗。

示例 說明
max(C1) 相對(duì)當(dāng)前單元格臊恋,求C1單元格的最大值
max(C1{age>20}) 相對(duì)當(dāng)前單元格,取到綁定對(duì)象屬性age大于20的C1單元格值的最大值
max(C1,C2) 相對(duì)當(dāng)前單元格墓捻,求C1和C2單元格的最大值
max(C1{age>20},C2{salary>2000 and degree=='本科'}) 相對(duì)當(dāng)前單元格抖仅,取到所有綁定對(duì)象屬性age大于20的C1單元格值以及綁定對(duì)象屬性salary大于2000且degree屬性等于本科的C2單元格的值進(jìn)行求最大值

5.min函數(shù)(求最小值)

min函數(shù)是對(duì)給定的表達(dá)式在計(jì)算后值求其中的最小值,min函數(shù)要求各個(gè)表達(dá)式計(jì)算后的值必須是數(shù)字砖第,否則將產(chǎn)生錯(cuò)誤撤卢。

示例 說明
min(C1) 相對(duì)當(dāng)前單元格,求C1單元格的最小值
min(C1{age>20}) 相對(duì)當(dāng)前單元格梧兼,取到綁定對(duì)象屬性age大于20的C1單元格值的最小值
min(C1,C2) 相對(duì)當(dāng)前單元格放吩,求C1和C2單元格的最小值
min(C1{age>20},C2{salary>2000 and degree=='本科'}) 相對(duì)當(dāng)前單元格,取到所有綁定對(duì)象屬性age大于20的C1單元格值以及綁定對(duì)象屬性salary大于2000且degree屬性等于本科的C2單元格的值進(jìn)行求最小值

6.row函數(shù)(取行號(hào))####

取當(dāng)前單元格所在行的行號(hào)羽杰,這個(gè)函數(shù)比較簡單渡紫,它沒有參數(shù)。

示例 說明
row() 取當(dāng)前單元格所在行的行號(hào)

7.column函數(shù)(取列號(hào))####

取當(dāng)前單元格所在列的列號(hào)忽洛,這個(gè)函數(shù)比較簡單腻惠,它沒有參數(shù)。

示例 說明
column() 取當(dāng)前單元格所在列的列號(hào)

2.分頁相關(guān)函數(shù)

所謂分頁相關(guān)函數(shù)欲虚,是指這些函數(shù)是在分頁的時(shí)候進(jìn)行計(jì)算集灌,比如計(jì)算當(dāng)前頁有多少條記錄、當(dāng)前頁某個(gè)單元格值累加后是多少复哆、平均值是多少欣喧、最大值是多少等等。

1.pcount函數(shù)

統(tǒng)計(jì)當(dāng)前頁下表達(dá)對(duì)應(yīng)值的數(shù)目梯找,與count函數(shù)的使用方法基本一致唆阿,不同之處在于pcount只會(huì)統(tǒng)計(jì)當(dāng)前頁中對(duì)應(yīng)的表達(dá)式內(nèi)容的數(shù)目。

示例 說明
pcount(C1) 統(tǒng)計(jì)當(dāng)前頁中锈锤,C1單元格數(shù)目
pcount(C1,D2{D2>10000}) 統(tǒng)計(jì)當(dāng)前頁中驯鳖,C1單元格和當(dāng)前頁中所有D2單元格值大于10000的D2單元格數(shù)目

2.psum函數(shù)

將當(dāng)前頁下表達(dá)式對(duì)應(yīng)的所有值進(jìn)行累加闲询,與sum函數(shù)對(duì)應(yīng),不同的是psum只針對(duì)當(dāng)前頁浅辙。

示例 說明
psum(C1) 將當(dāng)前頁中扭弧,所有C1單元格值進(jìn)行累加
psum(C1,D2{D2>10000}) 將當(dāng)前頁中,所有C1單元格值以及值小于10000的D2單元格值累加起來

3.pmax函數(shù)

比較當(dāng)前頁中记舆,表達(dá)式對(duì)應(yīng)的值鸽捻,找出其中最大的那個(gè)值,與max函數(shù)對(duì)應(yīng)泽腮,只是pmax只針對(duì)當(dāng)前頁御蒲。

示例 說明
pmax(C1) 比較當(dāng)前頁中所有C1單元格值,找出最大值诊赊。
pmax(C1,D2{D2>10000}) 比較當(dāng)前頁中厚满,所有C1、D2以及值大于1000的E2單元格值碧磅,找出其中最大的痰滋。

4.pmin函數(shù)

比較當(dāng)前頁中,表達(dá)式對(duì)應(yīng)的值续崖,找出其中最小的那個(gè)值,與min函數(shù)對(duì)應(yīng)团搞,只是pmin只針對(duì)當(dāng)前頁严望。

示例 說明
pmin(C1) 比較當(dāng)前頁中所有C1單元格值,找出最小值逻恐。
pmin(C1,D2,E2{E2>1000}) 比較當(dāng)前頁中像吻,所有C1、D2以及值大于1000的E2單元格值复隆,找出其中最小的拨匆。

5.page函數(shù)

輸出當(dāng)前所在頁的頁碼,該函數(shù)沒有參數(shù)挽拂。

示例 說明
page() 輸出當(dāng)前所在頁的頁碼惭每。

6.pages函數(shù)

輸出當(dāng)前報(bào)表一共有多少頁,該函數(shù)沒有參數(shù)亏栈。(pages函數(shù)目前僅能在頁眉頁腳中使用)

示例 說明
pages() 輸出當(dāng)前報(bào)表一共有多少頁台腥。

3.數(shù)學(xué)函數(shù)

1.abs函數(shù)(絕對(duì)值)

求參數(shù)的絕對(duì)值,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字绒北,否則會(huì)報(bào)錯(cuò)黎侈。

示例 說明
abs(-233) 求-233絕對(duì)值,計(jì)算后的值是233
abs(C1) 相對(duì)當(dāng)前單元格闷游,取到C1單元格的值峻汉,如果有多個(gè)則取第一個(gè)值返回其絕對(duì)值

2.ceil函數(shù)(最小值)

對(duì)參數(shù)值取最小值贴汪,如果參數(shù)值為小數(shù)將舍棄小數(shù)點(diǎn)后面的小數(shù)部分,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字休吠,否則會(huì)報(bào)錯(cuò)扳埂。

示例 說明
ceil(32.32) 計(jì)算后值為32
ceil(C1) 相對(duì)當(dāng)前單元格,取到C1單元格的值蛛碌,如果有多個(gè)則取第一個(gè)值返回其最小值

3.floor函數(shù)(最大值)

對(duì)參數(shù)值取最大值聂喇,如果參數(shù)值為小數(shù)將四舍五入小數(shù)點(diǎn)后面的小數(shù)部分,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字蔚携,否則會(huì)報(bào)錯(cuò)希太。

示例 說明
floor(32.52) 計(jì)算后值為33
floor(C1) 相對(duì)當(dāng)前單元格,取到C1單元格的值酝蜒,如果有多個(gè)則取第一個(gè)值返回其最大值

4.chn函數(shù)(數(shù)字轉(zhuǎn)中文)

將一個(gè)數(shù)字轉(zhuǎn)化成中文誊辉,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字,否則會(huì)報(bào)錯(cuò)亡脑。

示例 說明
chn(213) 計(jì)算后的值為:貳佰壹拾叁
chn(C1) 相對(duì)當(dāng)前單元格堕澄,取到C1單元格的值,如果有多個(gè)則取第一個(gè)值霉咨,再轉(zhuǎn)化成中文

5.cos函數(shù)(求余弦)

求參數(shù)的余弦值蛙紫,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字,否則會(huì)報(bào)錯(cuò)途戒。

示例 說明
cos(213) 計(jì)算后的值為:0.8090276252864301
cos(C1) 相對(duì)當(dāng)前單元格坑傅,取到C1單元格的值,如果有多個(gè)則取第一個(gè)值喷斋,再求其余弦值

6.sin函數(shù)(正弦)

求參數(shù)的正弦值唁毒,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字,否則會(huì)報(bào)錯(cuò)星爪。使用方法同cos()

7.tan函數(shù)(正切)

求參數(shù)的正切值浆西,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字,否則會(huì)報(bào)錯(cuò)顽腾。使用方法同cos()

8.exp函數(shù)(方法用于返回自然數(shù)底數(shù)e的參數(shù)次方)

求參數(shù)的自然數(shù)底數(shù)e的參數(shù)次方近零,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字,否則會(huì)報(bào)錯(cuò)抄肖。使用方法同cos()

9.log10函數(shù)(返回以10為底的對(duì)數(shù)值)

求參數(shù)以10為底的對(duì)數(shù)值秒赤,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字,否則會(huì)報(bào)錯(cuò)憎瘸。使用方法同cos()

10.log函數(shù)(自然對(duì)數(shù))

求參數(shù)自然對(duì)數(shù)值入篮,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字,否則會(huì)報(bào)錯(cuò)幌甘。使用方法同cos()

11.median函數(shù)(中位數(shù))

求一組數(shù)據(jù)的中位數(shù)潮售,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字痊项,否則會(huì)報(bào)錯(cuò)。

示例 說明
median(12,42,31) 運(yùn)行結(jié)果為31
median(C1) 相對(duì)當(dāng)前單元格酥诽,取到C1單元格的所有值鞍泉,再取這些值中位數(shù)
median(C1,C2) 相對(duì)當(dāng)前單元格,取到C1單元格和C2單元格的所有值肮帐,再取這些值中位數(shù)

12.mode函數(shù)(眾數(shù))

求一組數(shù)據(jù)的眾數(shù)咖驮,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字,否則會(huì)報(bào)錯(cuò)训枢。

示例 說明
mode(12,42,3,12) 運(yùn)行結(jié)果為12
mode(C1) 相對(duì)當(dāng)前單元格托修,取到C1單元格的所有值,再取這些值眾數(shù)
mode(C1,C2) 相對(duì)當(dāng)前單元格恒界,取到C1單元格和C2單元格的所有值睦刃,再取這些值眾數(shù)

13.vara函數(shù)(方差)

求一組數(shù)據(jù)的方差,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字十酣,否則會(huì)報(bào)錯(cuò)涩拙。使用方法同median()

14.stdevp函數(shù)(標(biāo)準(zhǔn)差)

求一組數(shù)據(jù)的標(biāo)準(zhǔn)差,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字耸采,否則會(huì)報(bào)錯(cuò)兴泥。使用方法同median()

15.pow函數(shù)(返回第一個(gè)參數(shù)的第二個(gè)參數(shù)次方)

pow函數(shù)需要兩個(gè)參數(shù),第一個(gè)為需要計(jì)算的數(shù)字或表達(dá)式虾宇,第二個(gè)為具體的次方郁轻。

示例 說明
pow(3,2) 表示計(jì)算3的2次方值,運(yùn)算后的結(jié)果為9
pow(C1,3) 相對(duì)當(dāng)前單元格文留,取到C1單元格的值,如果取到的C1單元格有多個(gè)竭沫,則取第一個(gè)燥翅,再對(duì)其值求3次方

16.random函數(shù)(隨機(jī)數(shù))

生成一個(gè)隨機(jī)數(shù),可以有一個(gè)數(shù)字類型的參數(shù)或表達(dá)式蜕提,如果有參數(shù)森书,那么以這個(gè)參數(shù)作為生成隨機(jī)數(shù)字的種子,如果沒有則生成一個(gè)0~1之間的隨機(jī)數(shù)谎势。

示例 說明
random() 生成一個(gè)0~1之間的隨機(jī)數(shù)
random(10) 生成一個(gè)1~10之間的隨機(jī)數(shù)
random(C1) 相對(duì)當(dāng)前單元格凛膏,取到C1單元格的值,如果取到的C1單元格有多個(gè)脏榆,則取第一個(gè)猖毫,再將這個(gè)值作為種子生成一個(gè)隨機(jī)數(shù)

17.round函數(shù)(四舍五入)

對(duì)一個(gè)小數(shù)進(jìn)行四舍五入,它需要兩個(gè)參數(shù)须喂,第一個(gè)參數(shù)要進(jìn)行四舍五入的小數(shù)或表達(dá)式吁断,第二個(gè)為一個(gè)可選的要保留的小數(shù)位數(shù)趁蕊,如果沒有,則不保留小數(shù)仔役。

示例 說明
round(32.12) 計(jì)算后的值為32
round(32.123,2) 計(jì)算后的值為32.12
round(C1,2) 相對(duì)當(dāng)前單元格掷伙,取到C1單元格的值,如果取到的C1單元格有多個(gè)又兵,則取第一個(gè)任柜,然后對(duì)這個(gè)值做保留兩位小數(shù)的四舍五入操作

18.sqrt函數(shù)(平方根)

求一個(gè)數(shù)字或表達(dá)式計(jì)算后值的平方根,參數(shù)值計(jì)算后數(shù)據(jù)類型必須是數(shù)字沛厨,否則會(huì)報(bào)錯(cuò)宙地。

示例 說明
sqrt(2) 計(jì)算后的值為:1.414214
sqrt(C1) 相對(duì)當(dāng)前單元格,取到C1單元格的值俄烁,如果取到的C1單元格有多個(gè)绸栅,則取第一個(gè),然后對(duì)這個(gè)值進(jìn)行取平方根計(jì)算

4.日期函數(shù)

1.date函數(shù)(日期)

輸出日期页屠,date函數(shù)可以有一個(gè)參數(shù)粹胯,就是日期格式,如果沒有則采用yyyy-MM-dd HH:mm:ss格式輸出日期辰企。

示例 說明
date() 以yyyy-MM-dd HH:mm:ss格式輸出當(dāng)前日期风纠,如:2010-08-15 08:45:10
date('yyyy年MM月dd日') 以yyyy年MM月dd日格式輸出當(dāng)前日期,如:2010年08月15日

2.day函數(shù)(天)

輸出當(dāng)前在月份中的天牢贸,該函數(shù)沒有參數(shù)竹观。

示例 說明
day() 可能輸出15,表示當(dāng)前為15日

3.month函數(shù)(月)

輸出當(dāng)前月份潜索,該函數(shù)沒有參數(shù)臭增。用法同day()

4.year函數(shù)(年)

輸出當(dāng)前年份,該函數(shù)沒有參數(shù)竹习。用法同day()

5.week函數(shù)(星期)

輸出當(dāng)前是星期幾誊抛,該函數(shù)沒有參數(shù)。

示例 說明
week() 輸出值可能是“星期三”整陌,表示當(dāng)前為星期三

5.字符串函數(shù)

1.indexOf函數(shù)(位置)

用于返回一個(gè)字符串拗窃,在目標(biāo)字符串中的位置,該函數(shù)至少需要兩個(gè)參數(shù)泌辫,第一個(gè)為目標(biāo)字符串随夸,第二個(gè)為要查找的字符串,如果有三個(gè)參數(shù)震放,那么第三個(gè)就是開始查找的位置信息宾毒,第三個(gè)參數(shù)必須是一定大于等于0的數(shù)字。

示例 說明
indexof('中華人民共和國','共和') 表示要從"中華人民共和國"這個(gè)字符串中找到“共和”字符串的位置
indexof('中華人民共和國','共和',2) 表示要從"中華人民共和國"這個(gè)字符串中第二個(gè)字符開始始殿遂,找到“共和”字符串的位置
indexof(C1,"人民",2) 相對(duì)于當(dāng)前單元格伍俘,找到C1單元格邪锌,如果C1單元格有多個(gè),則取第一個(gè)單元格值癌瘾,再從這個(gè)值中第2個(gè)位置開始找到“人民”字符串的位置

2.length函數(shù)(長度)

求目標(biāo)字符串長度觅丰,該函數(shù)必須要有一個(gè)參數(shù)。

示例 說明
length("中華人民共和國") 7
length(C1) 相對(duì)于當(dāng)前單元格妨退,找到C1單元格妇萄,如果C1單元格有多個(gè),則取第一個(gè)單元格值咬荷,然后計(jì)算這個(gè)值長度

3.lower函數(shù)(轉(zhuǎn)小寫)

將參數(shù)中英文全部轉(zhuǎn)為小寫冠句,該函數(shù)必須要有一個(gè)參數(shù)。

示例 說明
lower("Super Man") 計(jì)算后的結(jié)果為:super man
lower(C1) 相對(duì)于當(dāng)前單元格幸乒,找到C1單元格懦底,如果C1單元格有多個(gè),則取第一個(gè)單元格值罕扎,然后將這個(gè)值中所有英文轉(zhuǎn)換成小寫

4.upper函數(shù)(轉(zhuǎn)大寫)

將參數(shù)中英文全部轉(zhuǎn)為大寫聚唐,該函數(shù)必須要有一個(gè)參數(shù)。用法同lower()

5.replace函數(shù)(替換字符串)

這個(gè)函數(shù)需要有三個(gè)參數(shù)腔召,第一個(gè)是目標(biāo)字符串杆查,第二個(gè)是要被替換的字符串,第三個(gè)是要替換的字符串臀蛛。

示例 說明
replace("他是一個(gè)好人","他","她") 計(jì)算結(jié)果為:她是一個(gè)好人
replace(C1,"他","她") 相對(duì)于當(dāng)前單元格亲桦,找到C1單元格,如果C1單元格有多個(gè)浊仆,則取第一個(gè)單元格值客峭,然后再將這個(gè)值中所有“他”換成“她”

6.substring函數(shù)(子字符串)

該函數(shù)允許有三個(gè)參數(shù),第一個(gè)是原字符串抡柿,第二個(gè)為開始截取的位置舔琅,第三個(gè)為截取結(jié)束的位置,第三個(gè)缺省即為字符串尾部沙绝。

示例 說明
substring("他是一個(gè)好人",2) 運(yùn)行結(jié)果為:一個(gè)好人
substring("他是一個(gè)好人",2,4) 運(yùn)行結(jié)果為:一個(gè)
substring(C1,2,10) 相對(duì)于當(dāng)前單元格,找到C1單元格鼠锈,如果C1單元格有多個(gè)闪檬,則取第一個(gè)單元格值,然后再取這個(gè)值中第2到第10個(gè)字符之間內(nèi)容

7.trim函數(shù)(去空格)

去除目標(biāo)字符串兩邊空格购笆,該函數(shù)要求必須要有一個(gè)參數(shù)粗悯。

示例 說明
trim(" 一個(gè)好人 ") 運(yùn)行結(jié)果為:一個(gè)好人
trim(C1) 相對(duì)于當(dāng)前單元格,找到C1單元格同欠,如果C1單元格有多個(gè)样傍,則取第一個(gè)單元格值横缔,然后再將這個(gè)值兩邊可能存在的空格全部去除

3.數(shù)據(jù)引用

1.配置數(shù)據(jù)源

新建數(shù)據(jù)源

填寫數(shù)據(jù)源信息,數(shù)據(jù)源名稱自己定義衫哥,Bean ID填寫配好的Bean茎刚。

填寫數(shù)據(jù)集信息,數(shù)據(jù)集名稱自己定義撤逢,方法名選擇及返回對(duì)象對(duì)應(yīng)填寫膛锭。

刷新字段

2.設(shè)置數(shù)據(jù)集單元格

選中單元格,單元格屬性設(shè)置中類型為“數(shù)據(jù)集”蚊荣,選擇對(duì)應(yīng)的數(shù)據(jù)源及屬性

3.表達(dá)式引用單元格

選中單元格初狰,單元格屬性設(shè)置中類型為表達(dá)式,表達(dá)式一欄填寫表達(dá)式

語法規(guī)則如下:數(shù)據(jù)集名稱.聚合方式(字段名[,條件,排序方式])互例,具體聚合類型有以下幾種:

1.select(羅列數(shù)據(jù))

示例 說明
ds1.select(username) 取數(shù)據(jù)集ds1中所有的username字段信息
ds1.select(username,age>18) 取數(shù)據(jù)集ds1中所有的age屬性大于18的username字段信息
ds1.select(username,age>18, desc) 取數(shù)據(jù)集ds1中所有的age屬性大于18的username字段信息奢入,同時(shí)對(duì)username字段做倒排序
ds1.select(username,age>18 and age<60, asc) 取數(shù)據(jù)集ds1中所有的age屬性大于18且小于60的username字段信息,同時(shí)對(duì)username字段做正排序

2.group(分組羅列數(shù)據(jù))

示例 說明
ds1.group(degree) 對(duì)數(shù)據(jù)集ds1中degree字段進(jìn)行分組
ds1.group(degree,age>18) 對(duì)數(shù)據(jù)集ds1中age屬性大于18的所有的degree字段進(jìn)行分組
ds1.group(degree,age>18, asc) 對(duì)數(shù)據(jù)集ds1中age屬性大于18的所有的degree字段進(jìn)行分組媳叨,同時(shí)對(duì)分組后的degree字段進(jìn)行正排序

3.sum(累加數(shù)據(jù))

sum是對(duì)數(shù)據(jù)集目標(biāo)字段進(jìn)行累加腥光,所以目標(biāo)字段一定要是一個(gè)數(shù)字類型,否則就會(huì)產(chǎn)生錯(cuò)誤

示例 說明
ds1.sum(salary) 對(duì)于數(shù)據(jù)集ds1中的salary字段進(jìn)行累加
ds1.sum(salary, age>30) 對(duì)數(shù)據(jù)集ds1中age屬性大于30的所有對(duì)象的salary字段進(jìn)行累加

4.count(統(tǒng)計(jì)數(shù)量)

count是對(duì)數(shù)據(jù)集對(duì)象數(shù)量進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)數(shù)量不需要指定propertyName及order

示例 說明
ds1.count() 對(duì)ds1數(shù)據(jù)集中對(duì)象數(shù)量進(jìn)行統(tǒng)計(jì)
ds1.count(age>30) 統(tǒng)計(jì)數(shù)據(jù)集ds1中對(duì)象屬性age值大30的所有對(duì)象的數(shù)量

5.max(取最大值)

max是對(duì)數(shù)據(jù)集對(duì)象中某一字段進(jìn)行比較肩杈,取最大值柴我,取最大值沒有order。

示例 說明
ds1.max(salary) 對(duì)于數(shù)據(jù)集ds1中的salary字段進(jìn)行比較扩然,取最大值
ds1.max(salary, age>30) 對(duì)數(shù)據(jù)集ds1中age屬性大于30的所有對(duì)象的salary字段進(jìn)行比較艘儒,取最大值

6.min(取最小值)

min是對(duì)數(shù)據(jù)集對(duì)象中某一字段進(jìn)行比較,取最小值夫偶,取最小值沒有order界睁。用法同max()

7.avg(取平均值)

avg是對(duì)數(shù)據(jù)集對(duì)象中某一字段進(jìn)行比較,取平均值兵拢,除不盡默認(rèn)保留8位小數(shù)翻斟,取平均值沒有order。用法同max()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末说铃,一起剝皮案震驚了整個(gè)濱河市访惜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腻扇,老刑警劉巖债热,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異幼苛,居然都是意外死亡窒篱,警方通過查閱死者的電腦和手機(jī)带射,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門始绍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事儒拂〉渴啵” “怎么了脉课?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵啤月,是天一觀的道長。 經(jīng)常有香客問我避消,道長低滩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任岩喷,我火速辦了婚禮恕沫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纱意。我一直安慰自己婶溯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布偷霉。 她就那樣靜靜地躺著迄委,像睡著了一般。 火紅的嫁衣襯著肌膚如雪类少。 梳的紋絲不亂的頭發(fā)上叙身,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音硫狞,去河邊找鬼信轿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛残吩,可吹牛的內(nèi)容都是我干的财忽。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼泣侮,長吁一口氣:“原來是場噩夢啊……” “哼即彪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起活尊,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤隶校,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蛹锰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體深胳,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年宁仔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稠屠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片峦睡。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翎苫,死狀恐怖权埠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情煎谍,我是刑警寧澤攘蔽,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站呐粘,受9級(jí)特大地震影響满俗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜作岖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一唆垃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧痘儡,春花似錦辕万、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至矾瑰,卻和暖如春砖茸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背殴穴。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國打工凉夯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人推正。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓恍涂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親植榕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子再沧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容