在Word文档中保存自定义设置或属性

时间:2013-05-31 11:42:12

标签: c# ms-word

我有一个 MS Word 项目,我正在为用户构建一些窗格来完成一些信息,这些信息会自动填充书签< / strong>整个文件。我只是试图找到保存这些值的最佳方法,以便在用户键入其值后重新打开文档时可以轻松地检索它们。

我可以尝试从书签本身检索它们,但当然在很多情况下它们包含文本值,当我理想地想要将某个主键存储在某个用户看不到的地方时,以防他们对文本将使逆向工程的价值变得不可能。

我似乎无法找到有关在Word文档中保存自定义属性的任何信息,因此我们非常感谢有关如何实现这一目标的一般指导。

非常感谢!

2 个答案:

答案 0 :(得分:1)

我建议使用自定义文档属性。你可以用键值方式串起来(至少如果它类似于excel)。 我发现了一个解释如何操作的线程: Set custom document properties with Word interop

答案 1 :(得分:0)

在玩了这一点后,这是我的最终代码,以防它帮助其他人,我发现这种格式更容易理解和使用。这一切都基于Christian的引用文章:

using Office = Microsoft.Office.Core;
using Word = Microsoft.Office.Interop.Word;
using System.Reflection;

            Office.DocumentProperties properties = (Office.DocumentProperties)Globals.ThisDocument.CustomDocumentProperties;

            //Check if the property exists already
            if (properties.Cast<Office.DocumentProperty>().Where(c => c.Name == "nameofproperty").Count() == 0)
            {
                //Then add the property and value
                properties.Add("nameofproperty", false, Office.MsoDocProperties.msoPropertyTypeString, "yourvalue");
            }
            else
            {
                //else just update the value
                properties["nameofproperty"].Value = "yourvalue";                    
            }

在检索值方面,就像在顶部使用相同的三行来获取属性对象一样简单,也许使用if语句中的代码来检查它是否存在,并使用{{1}检索它}