实例描述
在Word文档的使用过程中,经常需要在文档中添加目录,这样可以清晰地描述文档中各部分所包含的内容。本实例将会介绍一种方法,可以将Word文档中的目录提取出来,并放入新的Word文档中。实例运行效果如图1所示。
图1 提取Word文档中的目录
实例运行中单击“打开Word文档”按钮,会打开Word文档,如图2所示。单击“提取Word目录保存到新文档”按钮,将提取Word文档中的目录并保存到新建的Word文档中,如图3所示。
图2 Word文档的内容
图3 提取Word文档目录内容
技术要点
本实例重点在于向读者介绍怎样使用TablesOfContents对象的Add方法提取Word文档中的目录,下面对本实例中用到的关键技术进行详细讲解。
实例中使用了TablesOfContents对象的Add方法提取Word文档中的目录。Add方法的语法格式如下
TableOfContents Add(Range Range, ref object UseHeadingStyles, ref object UpperHeadingLevel, ref object LowerHeadingLevel, ref object UseFields, ref object TableID, ref object RightAlignPageNumbers, ref object IncludePageNumbers, ref object AddedStyles, ref object UseHyperlinks, ref object HidePageNumbersInWeb, ref object UseOutlineLevels);
TablesOfContents对象的Add方法中的参数说明如表1所示。
表1 TablesOfContents对象的Add方法中的参数说明
参 数 | 描 述 |
Range | 指定目录存放区域,如果这个区域没有折叠,目录将覆盖区域 |
UseHeadingStyles | 如果为true,则使用内置样式创建目录,默认值为true |
UpperHeadingLevel | 目录起始的标题级别,默认值为1 |
LowerHeadingLevel | 目录结束的标题级别,默认值为9 |
UseFields | 如果为true,则使用TC域创建目录。如果要标记目录中所包含的目录项,可以使用MarkEntry方法。默认值为false |
TableID | 单字母标识符,用于根据TC域创建目录 |
RightAlignPageNumbers | 如果为true,目录中的页码将与页面右边距对齐,默认值为true |
IncludePageNumbers | 如果为true,则在目录中包含页码,默认值为true |
AddedStyles | 用于编辑目录的其他样式的字符串名称(除标题1~标题9以外的其他样式 ,要创建新的标题样式,可以使用HeadingStyles对象的Add方法 |
UseHyperlinks | 如果为true,那么将该文档发布到Web时,目录中的目录项将转为超链接的形式,默认值为true |
HidePageNumbersInWeb | 如果为true,那么将该文档发布到Web时,目录中的页码将被隐藏,默认值为false |
UseOutlineLevels | 如果为true,那么文档内容下方有下划线,否则没有,默认值为false |
代码实现
(1 打开Visual Studio开发环境,新建一个Windows窗体应用程序,并将其命名为GetDirectry。
(2 使用C#操作Word文档,需要引用相关的COM组件,引用COM组件的步骤请参照实例426中的设计过程。
(3 更改默认窗体Form1的Name属性为Frm_Main,更改Text属性为“提取Word文档中的目录”,向窗体中添加一个TextBox控件,用于显示保存Word文档的路径;添加两个Button控件,分别用于打开Word文档和提取Word文档目录。
(4 程序的主要代码如下
private void WordToWord(Word.Document P_wd, Word.Document P_document, Word.Range rg)
{
object P_UseHeadingStyles = true;//是否使用内置样式创建目录
object P_UpperHeadingLevel = 1;//目录起始的标题级别
object P_LowerHeadingLevel = 9;//目录结束的标题级别
object P_UseFields = false;//是否使用TC(目录项 创建目录
object P_TableID = 1;//用于根据TC域创建目录
object P_RightAlignPageNumbers = false;//目录是否右边距对齐
object P_IncludePageNumbers = false;//目录中是否包含页码
object P_AddedStyles = null;//目录其他样式的字符串名称
object P_UseHyperlinks = false;//是否将文档发布到Web
object P_HidePageNumbersInWeb = false; //目录中的页码是否被隐藏
P_wd.TablesOfContents.Add(rg, ref P_UseHeadingStyles, //将提取的目录插入到文档的开始位置
ref P_UpperHeadingLevel, ref P_LowerHeadingLevel,
ref P_UseFields, ref P_TableID, ref P_RightAlignPageNumbers,
ref P_IncludePageNumbers, ref P_AddedStyles, ref P_UseHyperlinks,
ref P_HidePageNumbersInWeb, ref G_missing);
if (P_wd.Fields.Count >= 1)
{
P_wd.Paragraphs[1].Range.Cut();//剪切文档开始位置的目录信息
P_document.Range(ref P_start, ref p_end).Paste();//将目录信息粘贴到新文档
}
}
更多有价值资源尽在程序开发资源库
点击【 】前往程序开发资源库
Powered by 小羊羔外链网 8.3.11
©2015 - 2024 小羊羔外链网
您的IP:3.15.143.181,2024-04-20 12:52:35,Processed in 0.07555 second(s).