找回密码
 立即注册

QQ登录

只需一步,快速开始

CTI_ELN

中级会员

48

主题

135

帖子

549

积分

中级会员

积分
549
CTI_ELN
中级会员   /  发表于:2023-12-19 16:29  /   查看:1098  /  回复:6
1金币
本帖最后由 Richard.Huang 于 2024-1-31 16:29 编辑

产品:SpreadJS
版本:V16

问题:在设计器中做模板,对worksheet中的表结构中预设了公式,使用该模板时发现公式不生效
image.png679446410.png
公式如下:  =IF($E$5<>"",$E$5,"")

在浏览器控制台调用 recalcAll()发现可以计算,将公式重新复制到其它单元格也可以计算

问题:
1、请问为什么使用时,公式不生效

2、v16以前如果对表结构进行 setDataSource()赋值会覆盖公式,v16发现不会,是v16版本改进了吗?

最佳答案

查看完整内容

您如果是通过设计器上的UI实现的导入导出,您可以通过监听导出成功事件,并在导入成功后执行计算逻辑即可。 API参考: FileLoaded:https://demo.grapecity.com.cn/spreadjs/help/api/designer/classes/GC.Spread.Sheets.Designer.Events#fileloaded calculate:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Workbook#calculate

6 个回复

倒序浏览
最佳答案
最佳答案
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-19 16:29:15
来自 4#
CTI_ELN 发表于 2023-12-21 08:38
你好,我在下面回复的内容为什么看不到了,而且对于问题1,我这边用的是ssjson文件,只是用了导入导出, ...

您如果是通过设计器上的UI实现的导入导出,您可以通过监听导出成功事件,并在导入成功后执行计算逻辑即可。
  1. designer.bind(GC.Spread.Sheets.Designer.Events.FileLoaded, (event, data) => {
  2.   var spread = designer.getWorkbook();
  3.   spread.calculate(GC.Spread.Sheets.CalculationType.all);
  4. });
复制代码
API参考:
FileLoaded:https://demo.grapecity.com.cn/sp ... r.Events#fileloaded
calculate:https://demo.grapecity.com.cn/sp ... .Workbook#calculate
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-19 18:10:57
2#
您好,对于您的两个问题,我进行分别回答。
问题1:该问题您可以排查一下是否是您在加载数据时,设置了没有勾选允许加载后重新计算选项,默认是不打开的。如果您已经勾选了,仍然存在该问题,建议提供一份可供我们复现的demo,方便我们进行测试,为您找到原因所在。
image.png786398315.png

问题2:我在V15.2.5和V16.2.6中分别进行了测试,确实复现了您所说的老版本setDataSource之后覆盖公式的情况。数据绑定实际更改的应该是单元格的value值,而非其formula,之前版本在“表格绑定”时会覆盖原本设置的公式,该操作不符合数据绑定的初衷。因此该问题实际是老版本的一个bug,目前新版本已经修复。
回复 使用道具 举报
CTI_ELN
中级会员   /  发表于:2023-12-21 08:38:55
3#
Richard.Huang 发表于 2023-12-19 18:10
您好,对于您的两个问题,我进行分别回答。
问题1:该问题您可以排查一下是否是您在加载数据时,设置了没 ...

你好,我在下面回复的内容为什么看不到了,而且对于问题1,我这边用的是ssjson文件,只是用了导入导出,没有关于公式的选项,请问有什么解决办法
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-28 14:48:34
5#
请问楼主问题解决了吗?如果仍有疑问,可以跟帖交流。
回复 使用道具 举报
CTI_ELN
中级会员   /  发表于:2024-1-15 11:29:15
6#
Lynn.Dou 发表于 2023-12-28 14:48
请问楼主问题解决了吗?如果仍有疑问,可以跟帖交流。

已解决,发现是代码冲突导致的

评分

参与人数 1金币 +200 收起 理由
Lynn.Dou + 200 很给力!

查看全部评分

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-1-15 16:25:35
7#
问题解决了就好,也感谢分享解决经验,为您送上金币奖励。
那本贴就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部