自定义文档属性未保存在Word文档中

时间:2019-02-19 15:23:20

标签: c# ms-word ms-office

我为单词添加了插件。我试图在单击按钮时更新Word文档中自定义属性的值。但是它没有被保存。  我写的代码是:

private void button_Click(object sender, IRibbonControl control, bool pressed)
{
 Word.Document document = WordApp.ActiveDocument;
 Microsoft.Office.Core.DocumentProperties properties;
 properties = (Microsoft.Office.Core.DocumentProperties)document.CustomDocumentProperties;
 properties["abc"].Value = "newValue";
 document.Save();
}

在这里,如果我关闭文档并再次打开它,则会得到旧值而不是新值。

但是,如果我在文档中添加一个空格然后保存。然后保存自定义属性的值。 代码是:

private void button_Click(object sender, IRibbonControl control, bool pressed)
{
 Word.Document document = WordApp.ActiveDocument;
 Microsoft.Office.Core.DocumentProperties properties;
 properties = (Microsoft.Office.Core.DocumentProperties)document.CustomDocumentProperties;
 properties["abc"].Value = "newValue";
 document.Range(document.Content.End - 1, document.Content.End - 1).Select();
 WordApp.Selection.Range.Text = " ";
 document.Save();
}

为什么行为是这样的。我不想在文档中添加任何额外的空格。请帮助我。预先感谢。

1 个答案:

答案 0 :(得分:0)

这是许多Office应用程序的已知“特质”,而不仅仅是Word。更改文档属性的值(但没有其他更改)不会“被注意”,因此不会保存。 discussion on MSDN中有很多细节。

代码需要在文档“ body”中添加一些内容(可以将其删除,但不能撤消),也可以在文档上显式设置“ dirty”标志,以便Word能够实现它确实需要保存:

document.Saved = false;
document.Save();