目录,是指书籍、文档正文前所载的目次,将主要内容以一定次第顺序编排,起指导阅读、检索内容的作用。在Word中创建目录前,需要设置文档相应文字或者段落的大纲级别,根据设定的大纲级别可创建文档的交互式大纲,即在Word文档左侧导航窗口中可显示为如同目录的标题大纲,通过点击相应级别的内容,可跟踪阅读位置或者快速移动相应的文档内容。下面将介绍如何通过C# 编程操作Word目录。
生目录时,这里考虑两种情况:
- 文档没有设置大纲级别,生成目录时需手动设置
- 文档已有大纲级别,此时,通过使用域代码来创建目录
使用工具:Free Spire.Doc for .NET(免费版)dll文件引用:安装后,注意在程序中添加引用Spire.Doc.dll(dll可在安装路径下的bin文件夹中获取)
一、生成目录
(1)手动设置大纲级别,生成目录
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;
namespace CreateToc_Doc
{
class Program
{
static void Main(string[] args)
{
//创建Document对象,加载Word文档
Document doc = new Document();
doc.LoadFromFile("test.docx");
//插入一个段落作为第一段
Paragraph paraInserted = new Paragraph(doc);
TextRange textRange = paraInserted.AppendText("目 录");
textRange.CharacterFormat.Bold = true;
textRange.CharacterFormat.TextColor = Color.CadetBlue;
doc.Sections[0].Paragraphs.Insert(0, paraInserted);
paraInserted.Format.HorizontalAlignment = HorizontalAlignment.Center;
//在第一段添加目录表
doc.Sections[0].Paragraphs[0].AppendTOC(1,2);
//设置指定段落的大纲级别
doc.Sections[0].Paragraphs[1].ApplyStyle(BuiltinStyle.Heading1);
doc.Sections[0].Paragraphs[4].ApplyStyle(BuiltinStyle.Heading2);
doc.Sections[0].Paragraphs[6].ApplyStyle(BuiltinStyle.Heading2);
doc.Sections[0].Paragraphs[8].ApplyStyle(BuiltinStyle.Heading2);
doc.Sections[0].Paragraphs[11].ApplyStyle(BuiltinStyle.Heading1);
doc.Sections[0].Paragraphs[13].ApplyStyle(BuiltinStyle.Heading1);
//更新目录
doc.UpdateTableOfContents();
//保存文档
doc.SaveToFile("result.docx", FileFormat.Docx2010);
System.Diagnostics.Process.Start("result.docx");
}
}
}
目录生成效果:
(2)使用域代码生成目录
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;
namespace CreateToc_Doc
{
class Program
{
static void Main(string[] args)
{
//创建Document对象,加载Word文档
Document doc = new Document();
doc.LoadFromFile("sample.docx");
//插入一个段落作为第一段
Paragraph paraInserted = new Paragraph(doc);
TextRange textRange = paraInserted.AppendText("目 录");
textRange.CharacterFormat.Bold = true;
textRange.CharacterFormat.TextColor = Color.CadetBlue;
doc.Sections[0].Paragraphs.Insert(0, paraInserted);
paraInserted.Format.HorizontalAlignment = HorizontalAlignment.Center;
//使用域代码自定义目录
TableOfContent toc = new TableOfContent(doc, "{\\o \"1-3\" \\h \\z \\u}");
doc.Sections[0].Paragraphs[0].AppendTOC(1, 3);
//更新目录
doc.UpdateTableOfContents();
//保存文档
doc.SaveToFile("output.docx", FileFormat.Docx2010);
System.Diagnostics.Process.Start("output.docx");
}
}
}
目录生成效果:
二、删除目录
using Spire.Doc;
using System.Text.RegularExpressions;
namespace RemoveTOC_Doc
{
class Program
{
static void Main(string[] args)
{
//创建Document对象,并加载含有目录的Word文档
Document doc = new Document();
doc.LoadFromFile("Result.docx", FileFormat.Docx2010);
//获取body
Body body = doc.Sections[0].Body;
//移除目录
Regex regex = new Regex("TOC\\w+");
for (int i = 0; i < body.Paragraphs.Count; i++)
{
if (regex.IsMatch(body.Paragraphs[i].StyleName))
{
body.Paragraphs.RemoveAt(i);
i--;
}
}
//保存文档
doc.SaveToFile("RemoveTOC.docx", FileFormat.Docx2010);
System.Diagnostics.Process.Start("RemoveTOC.docx");
}
}
}
(本文完)
- 大小: 8.7 KB
- 大小: 88.3 KB
- 大小: 70.5 KB
- 大小: 97.7 KB
分享到:
相关推荐
C#操作Word文档,实现文字写入 本实例主要讲述了使用C#操作Word文档,实现文字写入功能。通过使用Word文档中的Range属性,能够轻松地向Word文档中添加文本内容。本实例中,首先创建了一个Windows窗体应用程序,然后...
在.NET开发环境中,处理Microsoft Office文档,特别是Word文档时,我们常常会遇到需要对文档进行各种操作的需求,比如插入图片。DocX是一个轻量级、易于使用的库,它允许开发者在不依赖Microsoft Word的情况下,对...
### 使用C#动态生成Word文档并将数据填入Word表格中的技术要点 在现代办公环境中,自动化处理文档变得越来越重要。特别是在需要频繁生成报告、发票或其他标准化格式文档的情况下,利用编程语言来实现文档的自动化...
首先,我们需要了解C#与Word交互的基础——Microsoft.Office.Interop.Word命名空间。这个命名空间包含了对Word对象模型的访问,让我们能够控制Word应用程序、文档、段落、样式等元素。在C#项目中,我们需要添加对...
根据给定的信息,本文将详细解释如何利用C#语言结合Microsoft Office Interop Word库实现基于模板的Word文档自动生成及标签替换的过程。 ### 一、背景介绍 在实际开发过程中,常常需要根据一定的数据模板来生成...
本示例主要讲解如何利用PageOffice的FileMaker控件来批量生成Word文件,这对于需要大批量创建Word文档的场景非常有用,比如报告生成、数据导出等。 首先,我们要了解PageOffice的核心组件——FileMaker。FileMaker...
1.4.34 Random类——伪随机数生成器 75 1.4.35 Regex类——正则表达式 76 1.4.36 Split方法——分割字符串 78 1.4.37 String类——字符串 79 1.4.38 StringBuilder类——可变字符串 82 1.4.39 Substring方法——截取...
本篇将深入探讨如何利用C#实现多页打印与预览功能,并以此为基础,介绍一个特殊的案例——创建描红字帖制作软件。 一、C#中的打印技术 在C#中,打印功能主要通过System.Drawing.Printing命名空间中的类来实现。...
总的来说,实现"txt、word、ppt转换swf"的目标,需要掌握.NET框架下的文件操作、文档解析、SWF生成以及可能的Flash编程技术。通过这种方式,不仅可以保护知识产权,还能提供一种在线查看和分享文档的安全方式。
5.6.4Java实例——多次Undo(取消)操作 231 5.6.5优势和缺陷 236 5.6.6应用情景 236 5.7ObserverPattern(观察者模式) 236 5.7.1定义 236 5.7.2现实例子——拉登现身了 238 5.7.3C#实例——猫和老鼠 238 ...
在这个上下文中,"自然语言理解——文本分类系统"是一个利用C#编程语言实现的项目,旨在帮助开发者了解如何处理文本数据并进行有效的分类。文本分类是NLU中的一个关键任务,它可以用于垃圾邮件过滤、情感分析、新闻...
这个RAR压缩包包含了Aspose.Words的核心组件——Aspose.Words.dll,这是一个动态链接库,允许开发者在他们的C#应用程序中直接操作Word文档,而无需依赖Microsoft Word软件。 1. **Aspose.Words.dll**: 这是Aspose....
首先,为了在WPF应用中与Microsoft Word进行交互,我们需要利用Microsoft.Office.Interop.Word库,这是.NET Framework中的一个COM互操作组件,允许我们使用C#或VB.NET等.NET语言调用Word的API。然而,描述中指出,...
该工具利用.NET Framework 4.0的类库来实现对数据库的连接、查询和操作,以及文档生成功能。 3. **数据库支持**:工具支持三种主流的数据库管理系统——MySQL、SQL Server和Oracle。这涵盖了广泛的应用场景,无论是...
2. **简历生成**:利用C#的数据绑定和模板引擎,系统能自动生成格式统一、内容完整的PDF或Word简历文档。这不仅减轻了求职者的制作负担,也便于企业进行批量化处理和存储。 3. **简历打印**:集成Windows打印功能,...
《使用C#自动生成批量文件——以Generate.zip为例》 在信息技术领域,高效的数据处理和文件操作能力是程序员必备的技能之一。本文将基于“Generate.zip”这个压缩包文件,探讨如何利用C#编程语言自动生成大量Word、...
《动软代码生成器——高效开发的利器》 在IT行业中,开发效率是决定项目进度和质量的关键因素之一。为了提升开发效率,各种自动化工具应运而生,其中,“动软代码生成器”就是一款非常实用的工具,尤其对于使用C#...
《LIS源码分析——基于WORD文档》 在IT领域,源码是理解软件工作原理的关键,特别是对于医疗信息系统(Laboratory Information System,简称LIS)这样的专业应用来说,源码分析更是至关重要。"LIS源码-WORD.rar"这...
本项目“基于C#与ArcEngine的栅格插值方法”聚焦于一种关键的GIS分析技术——栅格插值,通过C#编程语言实现,为用户提供了一种工具来估算空间数据的连续性。 栅格插值是将离散的点数据转换为连续的栅格表面的过程,...