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

Append predefined style to a Word bookmark with c#

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

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. 首先,确保书签在文档中并且包含正确的text/range。 2. 检查样式名称是否拼写正确,记住 Word 处理样式名称时区分大小写 3. 直接格式和字符样式将覆盖段落样式的格式。

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

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

  1. 通过将字符样式 "Default Paragraph Font" 应用于范围
  2. 通过使用 Selection 对象的 "clear formatting" 方法之一。选择哪个取决于所需的确切行为。可以清除所有格式,可以清除所有直接格式,也可以清除字符样式(与选项 1 的结果相同):Selection.ClearCharacterStyle