我为单词添加了插件。我试图在单击按钮时更新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();
}
为什么行为是这样的。我不想在文档中添加任何额外的空格。请帮助我。预先感谢。
答案 0 :(得分:0)
这是许多Office应用程序的已知“特质”,而不仅仅是Word。更改文档属性的值(但没有其他更改)不会“被注意”,因此不会保存。 discussion on MSDN中有很多细节。
代码需要在文档“ body”中添加一些内容(可以将其删除,但不能撤消),也可以在文档上显式设置“ dirty”标志,以便Word能够实现它确实需要保存:
document.Saved = false;
document.Save();