Office文档设置

我正在使用以下函数在Office.context.documents.settings存储一个键值对:

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

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

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

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

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

未能加载设置

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

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

侧面加载的插件

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

这会影响settingsfunction,因为设置是通过加载项标识进行存储或从文档中调用时键入的。 有关如何工作(以及如何解决此问题)的详细信息,请参阅Office.context.document.settings.get的问题 。

该设置不会被保存,因为您没有调用saveAsyncset方法只将设置保存在内存中,而不保存到文件中。 要保存到文件中,您必须先调用set ,然后调用:

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

然后,当您重新加载加载项时,您将能够通过get检索设置。 以下是saveAsync方法的文档页面: https : saveAsync

迈克尔,下午的插件