使用c#将预定义样式附加到Word书签

时间:2015-11-03 12:44:41

标签: c# .net ms-word office-interop

我尝试将文本和预定义样式设置为书签。文字很好,但没有设置样式。这个来源有什么问题?:

Word.Application word = new Word.Application();

word.Visible = true;
Word.Document doc = word.Documents.Open("bookmark.dotx");
doc.Activate();

Word.Paragraph paragraph = doc.Bookmarks["navigatorHeadlineBookmark"].Range.Paragraphs.Add();
paragraph.Range.Text = "hello headline";
paragraph.Range.set_Style("navigatorHeadline");
//Debug 
paragraph.Range.Select(); //selects the expected text (hello headline)
Word.Selection selection = word.Selection;
selection.set_Style("navigatorHeadline"); //style is not set :-(

1 个答案:

答案 0 :(得分:0)

总结麻烦的步骤,最终导致答案: 1.首先,确保书签在文档中并包含正确的文本/范围。 2.检查样式名称拼写是否正确,请记住Word将样式名称处理为区分大小写 3.直接格式化和字符样式将覆盖段落样式的格式。

最后证明样式格式化没有出现的原因是:文本是使用超链接样式格式化的。这是一种字符样式,因此从代码中指定的样式覆盖格式。

在这种情况下,必须删除字符样式才能从段落样式中查看格式。以编程方式,这可以通过

完成
  1. 通过应用字符样式"默认段落字体"到范围
  2. 使用"清除格式之一" Selection对象的方法。选择哪个取决于所需的确切行为。可以清除所有格式,清除所有直接格式,或清除字符样式(这将产生与选项1相同的结果):Selection.ClearCharacterStyle