使用interop C#在Word中生成多级列表

时间:2014-11-19 17:13:37

标签: c# ms-word

我想要的是什么:

  

      
  1. 标题1

         
        

    1.1。标题2

             
       1.1.1. Heading 3
    
        
             

    1.2。标题2

  2.     
  3. 标题1
  4.     

      

等等。

我发现存在一种完成此操作的列表样式,但我无法弄清楚如何对其进行编码。

Word.Range rng = wordDoc.Paragraphs.Add().Range;
rng.ListFormat.ApplyListTemplate(...);

我不确定如何填写ApplyListTemplate()的参数,或者甚至是正确的方法。我无法找到任何ListTemplate对象的实际示例,只能引用它们。

参考此处:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.listformat.applylisttemplate(v=office.15).aspx

1 个答案:

答案 0 :(得分:1)

我刚刚在文档级加载项中完成此操作。如果你的是一个应用程序级别的加载项,它会略有不同。

Microsoft.Office.Interop.Word.Application app = Globals.ThisDocument.Application;
ListGallery gallery = app.ListGalleries[WdListGalleryType.wdOutlineNumberGallery];
// this one matches the numbering in your example, but not the indentation
ListTemplate myPreferredListTemplate = gallery.ListTemplates[5];

Style style = Globals.ThisDocument.Styles["Heading 1"];
style.LinkToListTemplate(myPreferredListTemplate, 1);

图库似乎是预定义的应用级列表样式,但您也可以通过ListTemplate创建和重复使用文档级Document.ListTemplates

创建自己的将是如何获得所需的缩进。您只需要使用ListTemplate.ListLevels中的设置。