当前位置: 首页 > 知识库问答 >
问题:

如何在C#中应用Word Quick样式--不仅仅是简单的格式化,而是整个样式?

西门胜涝
2023-03-14
public void AddParagraph(string text, string styleName = null)
{
  Paragraph paragraph = _document.Content.Paragraphs.Add();
  if (styleName != null)
  {
    paragraph.Range.set_Style(_document.Styles[styleName]);
  }

  paragraph.Range.Text = text;
  paragraph.Range.InsertParagraphAfter();
}

然后,我使用addpagraphy(“A title”,“heading 1”);,但是使用上面的包装器构建文档的结果是,没有应用完整的样式,只有字体、颜色、大小和粗体/斜体。

我使用自己的.dotx文件,带有自己定义和命名的样式,但是简单地从Remou复制代码可以使用自己的模板,所以我认为这不是问题所在,并且使用该代码我无法弄清楚如何添加多个段落,每个段落都具有自己的样式。

有人能指出我的方法有什么问题吗,或者至少我如何使Remou提供的答案对我的需求起作用?:)

共有1个答案

穆才良
2023-03-14

这对我管用。

Word.Application _wordApp = new Word.Application();
Word.Document oDoc = _wordApp.Documents.Add();
_wordApp.Visible = true;
_wordApp.Selection.TypeText("Heading");
oDoc.Paragraphs[1].set_Style(Word.WdBuiltinStyle.wdStyleHeading2);

当你说

paragraph.Range.Text = text + paragraph.Range.Text;

你得到的段落比你想象的要多。我想你需要:

paragraph.Range.Text = text;
Paragraph paragraph = _document.Content.Paragraphs.Add();
paragraph.Range.Text = text;

if (styleName != null)
{ 
    paragraph.set_Style(_document.Styles[styleName]);
}

paragraph.Range.InsertParagraphAfter();
 类似资料:
  • 问题内容: 这是我的CSS块: 我只希望IE 7、8和9能够“看到” 最简单的方法是什么? 问题答案: 更新2017 根据环境的不同,在IE10 +中已[正式弃用并删除.aspx)了条件注释。 原版的 最简单的方法可能是在HTML中使用Internet Explorer条件注释 您可以使用许多技巧(例如下划线hack),这些技巧将仅允许您将样式表中的IE作为目标,但是如果要在所有平台上将IE的所有

  • 问题内容: 如果我的html中包含以下内容: 这在我的CSS样式表中: 是否可以使用javascript / jquery删除所有内联样式并仅保留css样式表指定的样式? 问题答案: 要么 要使其更小一些,请尝试以下操作: 这应该可以加快速度,因为它会检查div是否具有样式属性。 无论哪种方式,如果您有大量的div,这都可能需要一些时间来处理,因此您可能要考虑使用JavaScript以外的其他方法

  • 问题内容: 简而言之: 在进行响应式网页设计时,应该使用一个还是多个样式表? 详细: 在响应式设计中,您倾向于拥有一个CSS主体块,然后在到达某些断点时需要其他一点来调整布局。您可以采用以下两种方式之一来组织代码: 单一样式表 多个样式表 似乎使用一个样式表可以减少HTTP请求的数量,但是您将拥有一个较大的文件,其中包含某些客户端可能不会使用的代码。多个样式表似乎可以减小文件大小,但是您会有更多的

  • 问题内容: 是否可以使用JavaScript更改CSS样式表? 我 不是 在说: 我 AM 谈论改变: 除了做一些肮脏的事情(我们还没有尝试过)之外,比如在头部创建一个新对象,innerHTML在其中创建一个样式标签,等等。尽管这样做确实可行,但仍会带来一些样式问题块已经在其他地方定义了,我不确定何时/是否浏览器会解析动态创建的样式块? 问题答案: 浏览器支持已得到很大改进(支持所有浏览器,包括I

  • 问题内容: 我有这个属性的股利。我需要 使用$(selector).css()删除尝试,但我不知道要设置什么值,因为它是“ none”。 问题答案: css()的文档说,将style属性设置为空字符串将删除该属性(如果它不存在于样式表中): 将样式属性的值设置为空字符串(例如 ),如果该属性已被直接应用(无论是在HTML样式属性中,通过jQuery的方法还是通过对样式属性的直接DOM操作),则将从

  • 问题内容: 我想对标签的文本内容进行分组。说我有以下内容:,可以修改时间模式,然后也可以修改括号中的文本。 我在想做类似的事情 将标签放在标签内很不好,仅用于字符串操作而不是样式设置? 问题答案: 根据HTML 4.01规范: 从HTML 5规范草案中: 内容模型:文本。 (即使是HTML 3.2和HTML 2规格说:) 选项元素不能有任何子元素。是的,这很糟糕。