收藏文章 楼主

一招教你快速获取word文档目录

版块:   类型:普通   作者:小羊羔links   查看:411   回复:0   获赞:0   时间:2022-06-28 21:26:30

实例描述

在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();//将目录信息粘贴到新文档

    }

}


更多有价值资源尽在程序开发资源库

点击【 】前往程序开发资源库

小羊羔锚文本外链网站长https://seo-links.cn 
回复列表
默认   热门   正序   倒序

回复:一招教你快速获取word文档目录

Powered by 小羊羔外链网 8.3.11

©2015 - 2024 小羊羔外链网

免费发软文外链 鄂ICP备16014738号-6

您的IP:3.15.143.181,2024-04-20 12:52:35,Processed in 0.07555 second(s).

支持原创软件,抵制盗版,共创美好明天!
头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息