Office.js 性能:我应该在一个 Excel.run 函数中投入多少?

2024-02-11

我正在处理一些大型电子表格(约 30,000 行)并遇到一些性能问题,并有以下一些与性能相关的问题:

我可以,或者更好的是,我应该塞进一个Excel.run功能?我需要考虑哪些事情来确定何时将事情分解为多个Excel.run call?

一般来说,我应该在一次调用中创建多少个范围?

在我需要将一个大范围分成多个较小范围之前,我应该使用多大的范围?

会打电话await ctx.sync()或多或少经常做一些与此相关的事情来提供帮助?


EDIT:这个问题的动机是:https://stackoverflow.com/a/44424045/3806701 https://stackoverflow.com/a/44424045/3806701


很抱歉没有早点回到这个话题。

几点观察:

  1. 如果您正在操纵大量ranges(范围很特殊),您肯定希望在尽可能大的块中执行它们(例如,将值设置为单个范围上的一个巨型数组,而不是逐个单元格设置值并创建一堆 Range 对象)。的创建any新的 API 对象并不便宜,但 Excel Ranges 很便宜特别不便宜。团队目前正在调查一些性能问题,一旦我们完成调查,我应该能够分享更多信息。

  2. 从内部实现来看,你可以这样想Excel.run作为任务容器(也许像"using"C# 中的语句)?特别是对于范围,如果你超过几千(你可以尝试一下),事情确实会开始显着减慢。所以从这个角度来看,你确实想释放你的Excel.run宜早不宜迟(不要暂停 10 分钟等待用户输入),并且 - 直到我们根据我上面提到的调查找到解决方法 - 您可能确实希望保留您的Excel.run-s 相当小,以减少内存占用。

  3. 话虽这么说,除非您要创建数千个 API 对象,否则在正常情况下,每个“context.sync”或“Excel.run”都是一个进程边界或网络往返。因此从这个角度来看,将上下文传递给辅助函数比拥有多个不同的独立等待 Excel.run-s 更好。

欲了解更多信息,我鼓励您阅读使用 Office.js 构建 Office 加载项 https://leanpub.com/buildingofficeaddins/,你的真实的一本书(但所有利润都捐献给慈善机构,这样当我向人们推荐它时我就不必感到内疚:-))。如果您好奇的话,有一个很长(11 页)的关于内部实现的部分,特别是对于范围,您可能会发现阅读它很有趣“特殊(但常见)情况:没有 ID 的对象”。您还可以找到有关“的部分更复杂的 context.sync 示例“很有用,特别是围绕我规定的模式”将工作分配到多个子例程"

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Office.js 性能:我应该在一个 Excel.run 函数中投入多少? 的相关文章

随机推荐

  • 在EF Core中,如何检查是否需要迁移?

    我在 Xamarin iOS 应用程序中使用 Entity Framework Core 在我的核心项目中 包含在 iOS 应用程序和其他应用程序之间共享的代码 netstandard 2 0 我想知道是否需要迁移 以便我也可以执行一些其他
  • 递归删除以

    我需要在 bat 文件中编写一个命令 递归删除以某个字符串开头的所有文件夹 我怎样才能做到这一点 这是您正在寻找的完整答案 FOR D R X IN certain string DO RD S Q X 显然你需要更换的地方certain
  • 如何在 Matlab fitglm 中获得 R 的零偏差和残差偏差等值?

    在 R 中 拟合 glm 后 您可以获得包含残差偏差和零偏差的摘要信息 这些信息告诉您您的模型与仅包含截距项的模型相比有多好 例如模型 model lt glm formula am mpg qsec data mtcars family
  • 如何编写 azure 函数来触发 azure devops 管道?这可能吗?

    我正在尝试设置一个可以触发 Azure DevOps 构建管道的 Azure 函数 但我不确定如何继续下去 以及是否有可能这样做 我已经有一个可供使用的构建管道 但无法使用 Azure DevOps 已提供的传统触发器 我不能透露原因 但我
  • JQuery - 在第 3 方表单上预填充表单字段

    我的网页上有一个 Netresults 表单 需要预先填充 该表单是使用 javascript 插入到页面中的 因此我无法在源代码中看到表单字段 如果表单位于我的页面上 我将使用以下代码 但由于它不在我的页面上 我不知道如何定位这些字段 有
  • Fuseki 1.0.1 SPARQL 更新返回 404

    我正在尝试学习更新 Fuseki 中的数据 但当我尝试时出现 404 错误 我显然没有做正确的事情 也许这是我的 INSERT 命令 不过我已经尝试过很多了 我正在使用 sparql tpl 上基于 Web 的 SPARQL 界面 我可以让
  • 如何使用自定义 webpack 加载器生成自定义源映射?

    在编写自定义加载程序时 我一直在尝试生成自定义源映射 我的 来源 是几行文字 this is my log lines 我写了一个加载器将其转换为 exports printAll function console log this con
  • 如何解决 Bot Framework Channel Emulator 中的“500 内部服务器错误”错误?

    我正在研究Bot框架技术 最近微软发布了新版本 V3 的bot 我已经使用旧版本开发了机器人 现在我正在尝试将我的机器人升级到新版本 为此 一切正常 但在将我的机器人发布到azure后 然后通过使用发布URL 我尝试在机器人框架通道模拟器
  • GetSubKeyNames 不返回所有键

    我想将软件安装在客户端上 我也使用 WMI 和注册表 我在下面找到了大部分信息HKLM 软件 微软 WINDOWS 当前版本 卸载 然而 例如 Dropbox 并没有出现在那里 Dropbox 位于HKCU所以我也想读这些键 我想很简单 因
  • 惰性评估与急切评估以及双链表构建

    我睡不着 我用 Haskell 编写了构建双链表的小程序 基本语言的属性是惰性求值 请参阅下面的一堆代码 我的问题是我可以在pure函数式语言与eager评价还是不评价 无论如何 有什么属性eager函数式语言必须能够构建这样的结构 杂质
  • Angular Material:当用户按 Enter 键时隐藏自动完成面板

    我目前正在开发一个表格 用户可以通过按 Enter 键来浏览可编辑元素 我也在其中使用了 Angular Material 我有一个 mat form field 其中包含几个使用 mat autocomplete 元素动态创建的输入字段
  • 通过绘图启动的脚本激活范围时,无需在键入之前单击[重复]

    这个问题在这里已经有答案了 我正在为 Google Sheet 编写一个简单的脚本 我有一个标记为 新条目 的按钮 该按钮实际上是一张绘图 其中分配了我的脚本 当用户单击该按钮时 脚本会在指定位置插入一个空行并激活第一列 以便用户可以开始键
  • MySQL - 增加列值或插入数据(如果不存在)

    我有用户访问该网站 用户可以执行一系列不同的操作 我想要一个计数器来计算用户执行该操作的次数 问题是 这是每天 每天都重新开始 所以模型有 ID 用户 操作 时间 日期 我想用这个 但我不能 因为Action不是钥匙 也不可能是钥匙 其他字
  • TensorFlow.Keras ModelCheckpoint 在训练时保存模型,为什么?

    我想知道为什么我们需要在训练时保存模型 在火车开始时保存一次然后只在火车期间保存重量还不够吗 我的意思是 模型在火车过程中没有改变 为什么需要这个布尔值 class ModelCheckpoint Callback save weights
  • Java 相当于 OpenLayers [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个Java库来显示来自各种来源的地图数据 包括shapefile WMS WFS Goog
  • 使用 LINQ 根据两个属性对列表中的项目进行分组

    我有一个Column类如下 public class Column public int LocId get set public int SecId get set public double StartElevation get set
  • 多个意图接收器?

    文件指出 如果Intent可以由多个应用程序处理 系统将提示用户一个对话框 要求他选择应用程序来完成操作 有没有办法让用户选择多个应用程序来一一完成操作 例如 如果我想分享一条消息 我将使用ACTION SEND具有指定的 MIME 类型
  • Ember 选择设置默认值

    即使阅读了大量文档后 我仍然无法完成这个简单的任务 我的模板中有一个选择视图 view Ember Select id id diff contentBinding difficulties optionValuePath content
  • 使用 interop.Excel 的 C# 中的 Excel 范围。范围既为空又不为空?

    我有一个看起来像这样的 Excel 工作表 A1 B1 空白 D1 E1 F1 IE 仅填充第一行 第三列为空白 我使用 interop excel 在 C 中按以下方式解析此内容 Excel Application exApp OpenE
  • Office.js 性能:我应该在一个 Excel.run 函数中投入多少?

    我正在处理一些大型电子表格 约 30 000 行 并遇到一些性能问题 并有以下一些与性能相关的问题 我可以 或者更好的是 我应该塞进一个Excel run功能 我需要考虑哪些事情来确定何时将事情分解为多个Excel run call 一般来