请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

gaoyuran

注册会员

15

主题

54

帖子

163

积分

注册会员

积分
163

微信认证勋章

gaoyuran
注册会员   /  发表于:2018-8-30 15:32  /   查看:6390  /  回复:11
升级至v11.2之后,发现在单元格里输入=(等于号),然后点击控件[size=13.3333px]ribbon的空白区域,就会报错(如下图): image.png181938780.png

另外单元格中输入任意的公式,如:=SUM(    然后点击空白区域,就会报错 无效的公式 报错信息如图:

image.png67071227.png
这个问题会导致我们的异步函数无法编辑写入,请问这个问题应该怎么处理?

11 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-30 18:39:19
沙发
对啊,这不符合公式的规则,当然是报错了。
您想要输入什么?
回复 使用道具 举报
gaoyuran
注册会员   /  发表于:2018-8-31 09:54:42
板凳
我们自己在异步函数的基础上实现了跨文件的函数,需要切换tab来获取对应文件的位置信息,升级到11.2版本之后就开始报错,函数根本写不进去,11.1版本就不存在这样的问题,我们肯定是希望能够跟着版本升级走的。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-31 10:16:27
地板
能提供个demo吗,让我看一下是怎么写的
回复 使用道具 举报
gaoyuran
注册会员   /  发表于:2018-8-31 10:22:51
5#
你们随便搞个11.2试一试就知道了,我们想要的效果就是像11.1版本那样,失去焦点自动闭合括号就行了,不需要报错,报错直接导致我们自己的功能无法使用了。11.1版本输入=SUM(  失去焦点后单元格显示0,公式显示 =SUM()   我们要的就是这样的效果。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-31 11:07:56
6#
V11.2中这样做是为了保持Excel一致的用户体验,在Excel中输入=sum( 也会报错,这是V11.2新增的策略
回复 使用道具 举报
gaoyuran
注册会员   /  发表于:2018-8-31 11:25:47
7#
您的意思就是说,以后的版本都会有这样的特性,我们就不能再跟着版本走了吗? 我们的跨工作簿函数是必须的,失去焦点的操作也是必须的,就是说只能停留在11.1版本了吗?
而且excel也是支持跨文件的函数的,如果选择别的文件就直接报错了,那excel是如何做到报错又能写函数的呢?
另外:我这边测试到excel在选择其他文件的时候或者点击非表格区域是不会报错的。
能否给个解决方案呢?总不能把我们前进的路的封堵了吧?
回复 使用道具 举报
gaoyuran
注册会员   /  发表于:2018-8-31 11:42:58
8#
excel报错是点回车确定之后才会报错,我们的11.2版本是点击其他的区域就报错了,体验和excel还是不一样的,能否改一改相关的规则呢?在确认回车的时候才报错。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-31 14:25:49
9#
是这样的,我将其中的原因分开跟您说明
首先这不是补不补全括号的问题。
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,这样可以规避掉上面的问题。
回复 使用道具 举报
gaoyuran
注册会员   /  发表于:2018-8-31 15:58:22
10#
感谢您的回复,请问如何设置公式的最小参数是0呢?  还有就是最小参数设置为0的话允许有参数吗?如果不允许有参数的话那肯定是不行的,因为需要通过对应的参数找目标数据取值的。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部