Word02---目录
引言
联系上一篇的内容《word01---标题》,这一篇我们就介绍如何在word中建立目录。
一、引入类
按照《Office 自动化---准备》中介绍的方法,引入两个新的类TablesOfContents和Range。其中TablesOfContents用来生成word的目录。该类有一个Add函数,这里我们利用这个函数来生成word的目录。
这里就介绍一下这个函数中各个参数(可以直接看例子,再回头看这些参数):
1. Range:指定你目录所在的位置;
2. UseHeadingStyles:如果设置为TRUE的话,就是用内嵌的头部风格创建目录;
3. UpperHeadingLevel和LowerHeadingLevel:在生成目录的时候,考虑标题等级为UpperHeadingLevel~LowerHeadingLevel之间的标题;
4. 在3中;
5. UseFields:如果为true的话,那么使用指定的领域来创建目录,这个领域可以使用MarkEntry标记那些要被包含到目录中的领域;
6. TableID:一个字符代表那些用来构建目录的目录领域;
7. RightAlignPageNumbers:默认为true,如果是true的话,页码会被排在目录的右端;
8. IncludePageNumbers:默认为true,如果是true的话,目录就包含页码;
9. AddedStyles:自定义的风格名,除了标题1~标题9,可以通过HeadingStyle对象添加自定义的标题风格;
10. UseHyperLinks:如果是true的话,那么目录可以使用链接功能;
11. HidePageNumbersInWeb:在web预览中隐藏页码;
12. UseOutlineLevels:如果是true的话,就会使用大纲创建目录。
二、简单的例子
CRangeWd10 range =sel.GoTo(COleVariant((short)wdGoToPage),COleVariant((short)wdGoToPrevious),COleVariant(short(999999)),vOpt);
range = sel.GoTo(COleVariant((short)wdGoToPage),COleVariant((short)wdGoToNext),COleVariant(short(1)),vOpt);
pf.put_Style((COleVariant)(short)-3);
pf.put_Alignment(wdAlignParagraphCenter);
sel.TypeText(L"目录");
pf.put_Alignment(wdAlignParagraphLeft);
range = sel.GoTo(COleVariant((short)wdGoToLine),COleVariant((short)wdGoToNext),COleVariant(short(1)),vOpt);
CTablesOfContentsWd10 tcontents =doc.get_TablesOfContents();
tcontents.Add(range,COleVariant((short)true),COleVariant((short)1),COleVariant(short(9)),
COleVariant(short(true)),COleVariant(short('T')),COleVariant(short(TRUE)),COleVariant(short(TRUE)),
COleVariant(L""),COleVariant((short)true),COleVariant((short)true),COleVariant((short)true));
其中sel便是CSelection对象,获得CParagphFormat对象,再通过这个对象设置。当然在创建这个目录的时候,你应该先有标题这些,这个在《word01---标题》中有介绍。
效果图如下:
三、总结
这里就介绍了如何写word的标题,在word生成目录时,程序就可以通过收集这些标题信息生成word文档的目录。