使用互操作 C# 在 Word 中生成多级列表
本文关键字:多级 列表 Word 互操作 | 更新日期: 2023-09-27 18:30:58
我想要的:
- 标题 1
1.1. 标题 2
1.1.1. Heading 3
1.2. 标题 2
- 标题 1
等等。
我看到存在一种列表样式可以完成此操作,但是我不知道如何对其进行编码。
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
我刚刚在文档级加载项中完成了此操作。如果您的外接程序是应用程序级外接程序,则情况会略有不同。
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
中玩弄设置即可。