0

我有一个MS Word项目,我在其中构建了许多窗格,供用户完成一些信息,这些信息会自动在整个文档的书签中填充文本。我只是想找到以某种方式保存这些值的最佳方法,以便在用户输入值后重新打开文档时可以轻松检索它们。

我可以尝试自己从书签中检索它们,但是当然在许多情况下,它们包含文本值,而我理想情况下希望将主键存储在用户看不到的地方,以防万一他们对文本进行了更改会使逆向工程值变得不可能。

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

非常感谢!

4

2 回答 2

1

我建议使用自定义文档属性。在那里你可以以键值方式字符串(至少如果它类似于 excel)。我找到了一个解释如何做到这一点的线程: Set custom document properties with Word interop

于 2013-05-31T11:52:32.560 回答
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 语句中的代码来检查它是否存在,然后使用检索它properties["nameofproperty"].Value

于 2013-05-31T15:57:28.100 回答