Office文档设置

时间:2017-12-11 15:07:23

标签: excel office-js

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

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

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

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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

-Michael,PM加载项