是这样的,我将其中的原因分开跟您说明
首先这不是补不补全括号的问题。
V11.2中spreadjs在提交公式的时候仍然会进行补全括号,只是在之后加入了校验的判断,判断这个公式的合法性。您举的例子sum这个公式为例,sum在Excel是至少需要一个参数的,在V11.2中sum(提交后会自动补全为sum()之后校验就会发现其中没有参数,那么就会报错。 这里V11.1与V11.2就是多了这个校验。如果没有校验,那么sum()在spreadjs中是成立的而在Excel中不成立,在导出Excel后就会造成结果差异,这就是一个bug.所以V11.2的改动就是修复这个BUG,而您恰恰利用了原本BUG的机制来做您的业务逻辑。
再一个,校验就要说到是什么时机来触发,在单元格失去焦点的时候会去触发,所以您跨workbook的时候因为已经出了spreadjs的作用范围所以就会失去焦点,然后会提交公式。
对于您现在的问题,解决办法是,将自定义公式的最小参数设置为0,这样可以规避掉上面的问题。 |