gpt4 book ai didi

office365 - 在 OfficeJS 中,您可以检索绑定(bind)对象的范围吗?

转载 作者:行者123 更新时间:2023-12-01 04:48:31 27 4
gpt4 key购买 nike

针对 Word Online,但 Excel/PPT 的任何指针也会有所帮助。

本质上,是否可以将绑定(bind)对象中的文本视为一个范围?因此,能够选择它并将插入符号移动到开头/结尾。

我设想代码具有以下效果:

Office.select(“myBindingID”, function error(){}).getAsRange().select(“End”);

最佳答案

特定于主机的 Office 2016+ API 浪潮与“通用”(2013) API 之间存在差异。

在 Excel 中,绑定(bind)(以及通用 API 集中的所有内容)都暴露给新的 OM,并与 OM 的其他方面(例如 Ranges)连接。所以在那里,你绝对可以做到:

    await Excel.run(async (context) => {
let binding = context.workbook.bindings.getItem("TestBinding");
let range = binding.getRange();
range.load("address");
range.select();

await context.sync();

OfficeHelpers.UI.notify("Binding range address is " + range.address);
});

但是,Word 特定 API 中似乎不提供绑定(bind)支持。如果您想更加确定,您可能想问一个单独的 Stackoverflow 问题,例如“WordApi (Office 2016+) 是否支持绑定(bind)?”。

对于 Excel,您可以通过最近推出的 Script Lab 工具 ( https://aka.ms/getscriptlab) 尝试五次点击即可实时运行上述代码段的扩展版本。只需安装 Script Lab 插件(免费),然后在导航菜单中选择“导入”,并使用以下 GIST URL: https://gist.github.com/Zlatkovsky/7701ceddae360ad3883ca867f3831a6f .见 more info about importing snippets to Script Lab .

更新:

关于@codex 关于是否可以将Office 2013 方法( addFromPromptAsync)与新的Office 2016 API 浪潮相结合的问题:是的。您可以将调用嵌套到 2013 回调中,但我个人更喜欢将其包装在 Promise 中,如下所示(参见代码的上半部分),然后使用 Excel.run对于新的 API(与我之前使用的相同):
    await new Promise((resolve, reject) => {
Office.context.document.bindings.addFromPromptAsync(
Office.BindingType.Matrix,
{ id: "TestBinding" },
(result) => {
if (result.status === Office.AsyncResultStatus.Succeeded) {
resolve();
} else {
reject();
}
}
)
})

await Excel.run(async (context) => {
let binding = context.workbook.bindings.getItem("TestBinding");
let range = binding.getRange();
range.load("address");
range.select();

await context.sync();

OfficeHelpers.UI.notify("Binding range address is " + range.address);
});

您可以在 https://gist.github.com/Zlatkovsky/24f2297cecea181edcc165c6c0df6da0 上使用 Script Lab 进行尝试,与上述说明相同。

PS:如果您不熟悉使用 Promise 包装回调,则有一章专门介绍 JS/TS 和 Promises Primer——包括专门关于创建新 Promise 的部分——在“使用 Office 构建 Office 插件”一书中.js”( https://leanpub.com/buildingofficeaddins)。免责声明,我是该书的作者;但我确实认为读者会从中发现很多值(value),无论是对于 JS/TS/Promise 概念的入门,还是本书的“内容”——关于构成 Office 2016 浪潮的核心概念蜜蜂。

关于office365 - 在 OfficeJS 中,您可以检索绑定(bind)对象的范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44421986/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com