Office文档设置

问题描述 投票:2回答:2

我目前使用以下函数在Office.context.documents.settings中存储键值对:

Office.context.document.settings.set(name, value);

一旦存储了键值对,我将重新启动加载项并尝试使用以下函数获取值 -

Office.context.document.settings.get(name);

但该函数返回null而不是正确的值。存储在文档设置中的值是否会在应用程序的多个会话中持续存在,或者在关闭应用程序后是否会刷新?

excel office-js
2个回答
1
投票

您的问题没有太多细节,但使用设置时有两个常见错误:

无法加载设置

在读取给定设置之前,您需要填充settings对象。这是使用refreshAsync()完成的:

Office.context.document.settings.refreshAsync(function(){
    Office.context.document.settings.get(name);
});

侧载加载项

当您侧载加载项时,Office会生成一个随机ID并将其分配给您的加载项。如果您删除并重新加载加载项,它将生成一个新ID。如果您在两台不同的计算机上加载相同的加载项,您还将获得两个不同的ID。

这会影响settings的功能,因为当从文档中存储或调用外接ID时,设置会被设置键入。有关其工作原理(以及如何解决)的详细信息,请参阅Issue with Office.context.document.settings.get


0
投票

由于您未调用saveAsync,因此未保存该设置。 set方法仅将设置保存在内存中,而不保存到文件中。要保存到文件,您必须先调用set,然后调用:

Office.context.document.settings.saveAsync(callback);

然后,当您重新加载加载项时,您将能够使用get检索设置。这是saveAsync方法的文档页面:https://dev.office.com/reference/add-ins/shared/settings.saveasync

-Michael,PM加载项

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