office-js - excel自定义函数的性能-在线禁用Excel中的自动安全?
问题描述
在为 Office JS 插件创建和测试自定义函数时,我测量了不同平台的性能并得到了完全不同的结果。我正在寻找改进的机会,特别是我想知道是否或如何禁用 Office 在线中的自动保存,因为这似乎是我的至少一个问题的原因。
两个主要问题是:
- Windows版的Excel桌面很慢
- Excel Online 不支持大量函数
因此,如果功能太多,Excel Online 甚至会崩溃。它将尝试安全并且与服务器的通信中断,显示有关无法连接到服务器的消息。
我们使用以下方法测试了 Excel 的行为
- 一个非常简单的函数,只返回当前日期时间值
- 一个更复杂的函数,它获取在 Web 服务器上计算的信息
所以根据我们测试的场景,结果是一样的。在更复杂的在线 Excel 中退出大约 50,000 个公式,而在简单的情况下,它退出在 50,000-100,000 个公式之间。
就性能而言,只要 Excel 在线运行,它的速度就与 MAC 上的 Excel 一样快,并且两者的速度都是 Windows 中的 Excel Desktop 的两倍。更不用说 COM 甚至 VBA 比运行时添加的任何 Javascript 都快得多。
那么有没有办法禁用自动安全,或者我只是被误导了,甚至尝试使用 Excel 在线和 Office JS 技术运行如此大的工作表?这样的事情还应该用COM技术来做吗?我真的很喜欢JS插件的兼容性...
解决方案
请参阅评论以了解具体情况,希望更多地了解您的情况。
但是,Excel Online 在涉及大型数据集时存在局限性,因此我们通常建议使用桌面 Mac/Com 应用程序。目前,该平台已经过优化,可以发出 Web 请求,而不是客户端计算(vba 和 com 更好)。
在提高 Web 请求的性能方面,推荐的模式是使用批处理机制,您可以在其中对自定义函数调用进行排队。您可以在此处找到详细示例:https ://docs.microsoft.com/en-us/office/dev/add-ins/excel/custom-functions-batching 。
此外,您目前无法通过 API 关闭自动保存,但这是一个很好的功能要求。你能在我们的用户语音频道上列出它吗?
谢谢!
推荐阅读
- sql - 用 Oracle 替换多个字符
- scala - Scala 隐式优先级系统
- android - 底部导航视图中加载的片段在方向更改时变为空
- python - PyQt5 - 无法根据 QDialog 接受的信号调用函数
- vb.net - 根据时间从数据库中获取值
- arrays - 数组在 PowerShell 中的函数之外没有输出
- java - 在java中读取yaml文件的嵌套元素
- java - Firebase 获取值返回 NULL 值
- python - 如何在 Python 内置而不是 ai,aj = aj,ai 中使用 swap 方法进行排序
- google-sheets - Bitly APIv4 电子表格集成