存储工作簿和加载项的信息

有一个Excel加载项允许用户对电子表格单元格进行注释(而不是Excel提供的传统注释)。 该加载项记忆在工作簿中具有评论的所有单元格。

我想知道这些信息实际存储在哪里。 它们是否存储在工作簿的某个隐藏部分? 它们是否存储在加载项的服务器中,然后如何识别工作簿?

使用Office.js API,可以使用Settings对象( Office.context.document.settings )将名称/值对存储在主机文档中。 有关如何工作的详细信息,请参阅此处的文档: https : //dev.office.com/reference/add-ins/shared/settings 。

如文档所示,使用“ 设置”对象创build/保存的设置将按照每个插件和每个文档进行保存,这与您描述的场景相匹配。 关于实际存储设置数据的位置,请查看另一个堆栈溢出文章的答案 – 它描述了主机文档的设置数据的保存方式/位置。 ( 注意 :我没有亲自validation这个答案,所以我build议你做一些testing来validation/确认你的场景的准确性。)

如果你指的是一个加载项,它以某种方式在文档打开/closures会话中“记住”一个特定的范围(例如,Bing地图加载项如何实现),它使用封面下方的绑定。 绑定 – 概念上类似于面向用户的命名范围,但是不可见并且是每个加载项(因此没有名称冲突风险) – 存储在文档中,就像命名范围一样。

正如Kim所指出的那样,这通常与Settings结合来创build一个加载项,这个加载项绑定到一些范围(例如使用一个类似GUID的名字),并存储一些绑定名称的元数据。

在附注中,如果只想在加载项运行的特定时间段内引用范围,但不需要这些在文档中保留,则可以使用对象跟踪。 在“ 使用Office.js构buildOffice加载项 ”一书(免责声明:我是本书的作者)中,在一篇名为“ 在线性” Excel.runWord.run之外使用对象的章节中Excel.run Word.runstream程(例如,button单击callback,setInterval等) “。