找回密码
 立即注册

QQ登录

只需一步,快速开始

Universail
金牌服务用户   /  发表于:2024-6-17 14:23  /   查看:1068  /  回复:9
目前手动触发执行公式的代码如下:

public async execute() {
  const workBook = this.designer!.getWorkbook() as GC.Spread.Sheets.Workbook;
  workBook.suspendPaint();
  workBook.suspendCalcService();
  workBook.calculate();
  workBook.resumeCalcService();
  workBook.resumePaint();}

这个代码会触发执行所有的页签的,当页签数量比较大的时候,会有很多不必要的计算,

我想知道有没有办法,仅仅执行当前激活页签的公式,其他页签不要执行


9 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-17 18:00:11
沙发
您好,可以试试sheet.resumeCalcService()接口看能否实现您的需求。
回复 使用道具 举报
夏莫听雨
注册会员   /  发表于:2024-7-12 13:57:40
板凳
可以试试 workBook.calculate(GC.Spread.Sheets.CalculationType.all, "Sheet1");
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-12 14:27:35
地板
夏莫听雨 发表于 2024-7-12 13:57
可以试试 workBook.calculate(GC.Spread.Sheets.CalculationType.all, "Sheet1");

回复 使用道具 举报
Universail
金牌服务用户   /  发表于:2024-7-24 13:46:56
5#
夏莫听雨 发表于 2024-7-12 13:57
可以试试 workBook.calculate(GC.Spread.Sheets.CalculationType.all, "Sheet1");

非常感谢,我试试看
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-24 14:31:48
6#
回复 使用道具 举报
Universail
金牌服务用户   /  发表于:2024-7-24 16:02:11
7#
夏莫听雨 发表于 2024-7-12 13:57
可以试试 workBook.calculate(GC.Spread.Sheets.CalculationType.all, "Sheet1");

我的应用场景下,不能用:workBook.calculate(GC.Spread.Sheets.CalculationType.all, "Sheet1");
只能用:workBook.calculate(GC.Spread.Sheets.CalculationType.rebuild, "Sheet1");

但是不用哪种方式,执行后发现所有页面都被计算过了
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-24 17:31:48
8#
好的,看样子这个接口还是无法实现楼主的需求。

另外还可以试试sheet.resumeCalcService()接口,看能不能满足需求。
回复 使用道具 举报
Universail
金牌服务用户   /  发表于:2024-7-24 17:46:21
9#
现在用的是workbook.resumeCalcService()
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-24 17:48:54
10#
好的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部