Java環(huán)境下如何實(shí)現(xiàn)JS Excel的異步函數(shù)
新建一個(gè)類型并且從派生在Java環(huán)境中,實(shí)現(xiàn)JS Excel的異步函數(shù)需要?jiǎng)?chuàng)建一個(gè)新的類型,并從派生。這個(gè)新類型將用于處理異步計(jì)算操作。使用defaultValue來暫時(shí)代替計(jì)算結(jié)果當(dāng)結(jié)果無法立即計(jì)算
新建一個(gè)類型并且從派生
在Java環(huán)境中,實(shí)現(xiàn)JS Excel的異步函數(shù)需要?jiǎng)?chuàng)建一個(gè)新的類型,并從派生。這個(gè)新類型將用于處理異步計(jì)算操作。
使用defaultValue來暫時(shí)代替計(jì)算結(jié)果
當(dāng)結(jié)果無法立即計(jì)算完成時(shí),可以使用defaultValue來暫時(shí)代替計(jì)算結(jié)果。這樣可以確保在計(jì)算未完成時(shí)仍能夠正常進(jìn)行其他操作。
使用evaluateAsync方法進(jìn)行異步計(jì)算
通過調(diào)用evaluateAsync方法,可以在Java環(huán)境中進(jìn)行異步計(jì)算操作。在異步計(jì)算完成后,使用方法將計(jì)算結(jié)果通知。
AsyncFunctionEvaluateMode的計(jì)算模式
AsyncFunctionEvaluateMode代表異步函數(shù)的計(jì)算模式,總共有三種計(jì)算模式:
1. 0表示函數(shù)在單元格需要計(jì)算時(shí)進(jìn)行重算。例如,當(dāng)A1的值改變時(shí),B1中的公式就會(huì)重新計(jì)算,因此MyAsync1(A1)和MyAsync2(A2)都會(huì)進(jìn)行重算。
2. 1表示函數(shù)只需要計(jì)算一次。
3. 2表示'FRESH'函數(shù)中的公式會(huì)隨著時(shí)間間隔進(jìn)行計(jì)算。
使用提供的fresh方法
提供了fresh方法來進(jìn)行計(jì)算。refresh(formula, evaluateMode, interval)中,計(jì)算模式應(yīng)該是枚舉類型中的一個(gè)。interval只有在計(jì)算模式為2時(shí)才起作用。一般來說,fresh函數(shù)是最外層的函數(shù)。當(dāng)將異步函數(shù)放在REFRESH函數(shù)中時(shí),異步函數(shù)將使用REFRESH的參數(shù),而自己的參數(shù)將不再起作用。
添加并定義異步函數(shù)
使用addCustomFunction方法來添加并定義異步函數(shù),然后可以在setFormula方法中使用這個(gè)自定義函數(shù),或者直接通過鍵盤輸入。這樣就能夠在Java環(huán)境下實(shí)現(xiàn)JS Excel的異步函數(shù)。
效果展示
接下來,讓我們來展示一下在Java環(huán)境下實(shí)現(xiàn)JS Excel的異步函數(shù)的效果。