我正在尝试通过Open XML编程更新word文档的自定义属性,但似乎没有为word文档正确保存更新的属性。因此,当我成功执行更新自定义属性代码后打开文档时,我收到的消息框是"此文档包含可能引用其他文件的字段;是否要更新文档中的字段?"如果我要按“不”。按钮然后所有更新属性都不会保存到文档中。如果我们要使用yes选项,那么它将更新属性,但我需要显式保存属性。请建议在不收到确认消息或损坏文档的情况下将属性保存到文档中。 :)
代码段如下,
vagrant halt
我正在使用.Net framework 3.5与Open XML SDK 2.0和Office 2013。
答案 0 :(得分:0)
试试这个
var CustomeProperties = xmlDOc.CustomFilePropertiesPart.Properties;
foreach (CustomDocumentProperty customeProperty in CustomeProperties)
{
if (customeProperty.Name == "DocumentName")
{
customeProperty.VTLPWSTR = new VTLPWSTR("My Custom Name");
}
else if (customeProperty.Name == "DocumentID")
{
customeProperty.VTLPWSTR = new VTLPWSTR("FNP.SMS.IQC");
}
else if (customeProperty.Name == "DocumentLastUpdate")
{
customeProperty.VTLPWSTR = new VTLPWSTR(DateTime.Now.ToShortDateString());
}
}
//Open Word Setting File
DocumentSettingsPart settingsPart = xmlDOc.MainDocumentPart.GetPartsOfType<DocumentSettingsPart>().First();
//Update Fields
UpdateFieldsOnOpen updateFields = new UpdateFieldsOnOpen();
updateFields.Val = new OnOffValue(true);
settingsPart.Settings.PrependChild<UpdateFieldsOnOpen>(updateFields);
settingsPart.Settings.Save();
您必须在打开时更新文档字段。