为何桌面端Excel中Office加载项命令比任务窗格加载项运行慢?
Excel加载项命令与任务窗格加载项的性能对比及选择困惑
- 桌面端Excel中,加载项命令的执行速度明显慢于任务窗格加载项:任务窗格加载项几乎瞬时完成,无任何提示;而加载项命令执行时会在状态栏显示“Office加载项正在处理您的加载项命令”,耗时更长。
- 当前处于开发模式,通过
npm start启动webpack开发服务器;但在网页版Excel中,两者性能几乎没有差异。 - 正在开发一款用于选定区域自动格式化的企业加载项,用户更倾向于使用加载项命令,但纠结是否要切换为任务窗格加载项。
- 基于官方示例代码开发,仅实现了将选定区域填充色改为黄色的功能,代码如下:
加载项命令版本
async function setYellow(event) { try { await Excel.run(async (context) => { const range = context.workbook.getSelectedRange(); // 读取区域地址 range.load("address"); // 更新填充颜色 range.format.fill.color = "yellow"; await context.sync(); event.completed(); }); } catch (error) {} }
任务窗格版本
/* * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. * See LICENSE in the project root for license information. */ /* global console, document, Excel, Office */ Office.onReady((info) => { if (info.host === Office.HostType.Excel) { document.getElementById("sideload-msg").style.display = "none"; document.getElementById("app-body").style.display = "flex"; document.getElementById("run").onclick = run; } }); export async function run() { try { await Excel.run(async (context) => { const range = context.workbook.getSelectedRange(); // 读取区域地址 range.load("address"); // 更新填充颜色 range.format.fill.color = "yellow"; await context.sync(); console.log(`所选区域地址为 ${range.address}。`); }); } catch (error) { console.error(error); } }
内容的提问来源于stack exchange,提问作者Jiwoo Park
相关产品推荐
相关产品推荐

