找回密码
 立即注册

QQ登录

只需一步,快速开始

lynn8588

金牌服务用户

40

主题

161

帖子

413

积分

金牌服务用户

积分
413
lynn8588
金牌服务用户   /  发表于:2022-12-18 11:45  /   查看:4996  /  回复:12
1金币
本帖最后由 Clark.Pan 于 2022-12-20 10:32 编辑


Hi team,

这里有个问题,有个格子的公式如下图的右图,然后通过currentCell.getPrecedents()得到的引用居然不对,不和公式里的表match,请问这个是怎么回事,应该怎么解决。


image.png435934447.png

12 个回复

正序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-2-2 18:43:38
13#
本帖最后由 Clark.Pan 于 2023-2-2 19:11 编辑

你那个删除的操作4楼已经试过了,重现不出来问题
并且即使按照你说的,那也是一样的如果立刻删除,那么公式都会变成#ref。
你之后再更在#ref为一个不存在的sheet这个操作,那是不是这个时候应用的sheet已经不存在了,不就是引用了一个不存在的sheet么

我们的结论是这个本身就是一个错误的操作,应当从操作本身去避免。如果本身操作就出现错误了,那么出现各种不正确的结果也是正常的。
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2023-2-2 18:11:16
12#
lynn8588 发表于 2023-2-2 18:07
你好,这个并不是客户输入一个不存在的sheet,而是我们删除一个已经存在的sheet后,通过得到getPrecedent ...

应该这样描述,我们把workbook里已经存在的sheet删除后,再重新填写其他sheet公式,然后得到ref格子里去替换一些值,但是我们发下getPrecedent得到的不对,我之前做的demo只是能让你看到这个问题,其实我们是不希望得到的不对,我们希望哪怕这张表没有,也不应该轻易变成本表这个错的。
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2023-2-2 18:07:56
11#
Clark.Pan 发表于 2022-12-18 11:45
更新一下目前情况,我们经过调研之后,目前暂时不会对此问题做修复,理由如下:
在Excel中,如果FomulaBar ...

你好,这个并不是客户输入一个不存在的sheet,而是我们删除一个已经存在的sheet后,通过得到getPrecedent不对
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-22 18:06:23
9#
目前开发还在调研中,具体如何来修复还要根据调研结果结合实际情况进行。
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2022-12-22 17:41:07
8#
Clark.Pan 发表于 2022-12-20 10:32
您好,该问题已复现并提交给开发DOCXLS-7256,本帖改为保留处理并移至BUG反馈版块。
感谢您的反馈,附上金 ...

请问这个问题什么时候能解决,并且能保留正确的引用公式,不要清空,或者你们能提供一个方法获取整个workbook里引用不存在的list的,这样也行,但是不要清空,不然我们这边替换不了值,谢谢!
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-20 10:32:19
7#
您好,该问题已复现并提交给开发DOCXLS-7256,本帖改为保留处理并移至BUG反馈版块。
感谢您的反馈,附上金币奖励。
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2022-12-20 09:52:00
6#

其实我还是希望能得到sheet2!B5,因为这样能把他替换成0或者“”,这样就不会显示ref。因为我们有这样的需求 比如一个格子的公式=Sheet2!B5+Sheet3!B6+A3,如果其中sheet2不存在了,那么需要改成 0+Sheet3!B6+A3,因为workbook中有很多sheet,不知道哪些格子里配置了不存在的sheet,所以要去ref的值里面找,并且还得找对一坨替换成0,因为 shee2!后面可以是任意一个格子

评分

参与人数 1金币 +1000 收起 理由
Clark.Pan + 1000 感谢反馈问题

查看全部评分

回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2022-12-20 09:48:10
5#
Clark.Pan 发表于 2022-12-19 15:48
您好,经过测试,并不会导致引用错乱,只是会清空对应的precedents,这是没问题的。
测试的版本是V5.2.5。 ...

我重现出来了

image.png275959777.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-12-19 15:48:05
4#
本帖最后由 Clark.Pan 于 2022-12-19 15:49 编辑

您好,经过测试,并不会导致引用错乱,只是会清空对应的precedents,这是没问题的。
测试的版本是V5.2.5。建议您升级到V5.2.5再次进行测试。如果还有问题,那么请您提供对应能够重现问题的demo
image.png904226684.png
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2022-12-19 11:03:18
3#
Clark.Pan 发表于 2022-12-19 09:49
您好,请您上传对应的ssjson或者Excel 文件,并注明是哪一个sheet与具体出现问题单元格的位置

你可以自己建2个sheet,然后将其中一个sheet1 B2引用另外一个sheet2的格子B5,然后再把sheet2给删除,你使用GCexcel读到sheet1 B2的格子的getPrecedent(false)得到的就是 sheet1!B5,而不是sheet2!B5
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部