c#Interop Word文档添加样式

时间:2012-03-11 20:44:02

标签: c# ms-word styles interop paragraph

我想为段落添加样式,但根据单词语言版本,我必须使用不同的名称。现在我正在为多个用户创建一个应用程序,如果他们有英文版本,我可以使用“Header 1”,但如果他们不这样,则不能识别该样式。我想知道我应该做什么,我应该添加一种新风格吗?我一直在研究这个问题,但我无法弄明白。

所以在我的荷兰语版本上我使用:

selection.TypeParagraph();
object kop1 = "Kop1";
selection.set_Style(kop1);
selection.TypeText("test");

但我需要英语:

selection.TypeParagraph();
object kop1 = "Header 1";
selection.set_Style(kop1);
selection.TypeText("test");

我实际上需要这个来创建内容表,如果我不使用样式我就无法创建内容表,对吧?否则我的内容表说它没有内容。

我使用以下内容制作内容表:

object start = adoc.Content.End - 1;
Range rangeForTOC = adoc.Range(ref start, ref missing);
TableOfContents toc = adoc.TablesOfContents.Add(rangeForTOC, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
adoc.TablesOfContents[1].TabLeader = WdTabLeader.wdTabLeaderDots;
adoc.TablesOfContents.Format = WdTocFormat.wdTOCClassic;
toc.Update();

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您可能希望使用Word.WdBuiltinStyle枚举而不是特定于语言的字符串。例如,在上面的代码中使用Word.WdBuiltinStyle.wdStyleHeading1。

解决此问题的另一种方法是添加自己的模板并使用该模板中定义的样式。在这种情况下,您需要在发行版中提供模板。

要使用预定义的表生成样式,请参阅以下答案:Setting Word 2007 table style designs in code

答案 1 :(得分:1)

对于一个我会使用DocX(没有Com)

Here是有关样式的信息。