如何使用 Office.js 在 Excel 加载项中控制重新计算并禁用本机刷新功能?

问题描述 投票:0回答:1

我正在使用 Office.js 开发 Excel 加载项,需要管理重新计算,同时将 Excel 的计算模式设置为自动。问题是这样的:

上下文:

  • 该加载项使用自定义公式从数据库中获取数据。
  • 用户在一张工作表中拥有大约 10,000 个自定义公式,即使数据没有更改,由于自动重新计算,打开工作簿时也会导致延迟。

问题:

  • 重新计算不一致:工作簿有时会在打开时重新计算,从而导致延迟。我们需要控制这种行为。
  • 数据一致性:数据应该仅在手动刷新时发生变化。需要防止自动更改。
  • 对其他公式的影响:将计算模式设置为手动会影响其他公式。我们需要一个使模式保持自动的解决方案。

要求:

禁用或覆盖本机刷新选项(例如“立即计算”、“全部刷新”、F9),以便仅通过加载项中的自定义刷新按钮进行重新计算。

我们尝试过:

将计算模式设置为手动会影响其他公式。没有 Office.js API 似乎可以直接禁用本机 Excel 命令。 问题:

  • 如何使用 Office.js 拦截或禁用本机刷新功能?
  • 是否有任何 API 或解决方法可以在不将计算模式更改为手动的情况下实现此目的?
  • 如何在不影响其他公式的情况下保证数据的一致性?

任何帮助或示例将不胜感激!

将计算模式设置为手动会影响其他公式。没有 Office.js API 似乎可以直接禁用本机 Excel 命令。

javascript excel office-js excel-addins
1个回答
0
投票

也许你可以重新考虑你的设计。每次从数据库检索数据时,将其存储在文档中的自定义 xml 部分中。让您的函数从那里读取结果。然后,您的“刷新”按钮将更新自定义 xml 部件数据。我不确定如何最好地告诉 Excel 单元格的数据已更改,因此它们会重新计算 - 在执行上述操作之前,您可能需要进行研究。

© www.soinside.com 2019 - 2024. All rights reserved.