找回密码
 立即注册

QQ登录

只需一步,快速开始

齐天大猫

金牌服务用户

49

主题

132

帖子

447

积分

金牌服务用户

积分
447
齐天大猫
金牌服务用户   /  发表于:2024-8-29 17:38  /   查看:816  /  回复:8
1金币
本帖最后由 齐天大猫 于 2024-8-29 17:41 编辑

假如报表默认打开页是sheet1,使用sjs懒加载打开模板后,先挂起计算和绘制,再查询数据绑定table,最后恢复计算和绘制。此时发现sheet1中的公式会计算,但是切换到sheet2后发现sheet2中的公式却未计算,需要点菜单栏公式中开始计算才可以,请问这种情况是否正常呢?


懒加载方法:
  1. spread.open(
  2.       blob,
  3.       function () {
  4.         resolve()
  5.       },
  6.       function (e) {
  7.         reject(e)
  8.       },
  9.       { calcOnDemand: true, dynamicReferences: false, fullRecalc: false, incrementalCalculation: false, openMode: GC.Spread.Sheets.OpenMode.lazy },
  10.     )
复制代码


挂起:
  1. spread.suspendCalcService(false)
  2. spread.suspendEvent()
复制代码


恢复:
  1. spread.resumeEvent()
  2. spread.resumeCalcService(true)
  3. spread.resumePaint()
复制代码



最佳答案

查看完整内容

您好,实际上,lazyMode导入的WorkBook,需要先切换其他的WorkSheet,然后才能够被正常使用,否则是无法正确获取结果的。 您也可以简单理解为,lazyMode导入的WorkBook,只有ActiveSheet是被加载了,其他的Sheet需要切换过去才能够被正常加载,并正常计算。

8 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-8-29 17:38:59
来自 2#
您好,实际上,lazyMode导入的WorkBook,需要先切换其他的WorkSheet,然后才能够被正常使用,否则是无法正确获取结果的。

您也可以简单理解为,lazyMode导入的WorkBook,只有ActiveSheet是被加载了,其他的Sheet需要切换过去才能够被正常加载,并正常计算。
回复 使用道具 举报
齐天大猫
金牌服务用户   /  发表于:2024-8-30 18:23:03
3#
Joestar.Xu 发表于 2024-8-30 13:37
您好,实际上,lazyMode导入的WorkBook,需要先切换其他的WorkSheet,然后才能够被正常使用,否则是无法正 ...

如果这样的话是不是可以监听切换sheet页事件,然后触发一下sheet页的计算就可以了呢?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-2 09:16:36
4#
是的,可以通过spread.getSheet接口来先获取Sheet对象来使Sheet加载。
回复 使用道具 举报
齐天大猫
金牌服务用户   /  发表于:2024-9-2 14:21:29
5#
Joestar.Xu 发表于 2024-9-2 09:16
是的,可以通过spread.getSheet接口来先获取Sheet对象来使Sheet加载。

如果切换到sheet2,假如sheet2中公式依赖了sheet3中的公式,此时触发sheet2的计算,sheet3会同时被触发吗?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-2 17:54:05
6#
如果我理解没错的话,这种情况下Sheet3还处于未加载的情况,也就不会被触发。
回复 使用道具 举报
齐天大猫
金牌服务用户   /  发表于:2024-9-3 09:59:07
7#
Joestar.Xu 发表于 2024-9-2 17:54
如果我理解没错的话,这种情况下Sheet3还处于未加载的情况,也就不会被触发。

image.png948246154.png


请问【菜单栏】-【公式】-【开始计算】这里调用的是哪个接口呢?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-3 12:15:37
8#
您好,这里调用的是Calculate接口,参考:https://demo.grapecity.com.cn/sp ... .Workbook#calculate
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-29 10:27:44
9#
您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部