`

C# 操作Word书签(一)插入、删除书签

阅读更多

概要

书签的设置可以帮助我们快速的定位某段文字,使用起来很方便,也很节省时间。对word文档中的书签操作,比较常见的是直接对某段文字插入书签,在下面的示例中,除了介绍插入书签的方法外,也将介绍操作书签的一些拓展方法,包括插入图片、表格到书签位置所在的段落、删除书签等。示例要点如下:

1. 插入书签

2. 插入图片到书签

3. 插入表格到书签

4. 删除书签

  4.1 删除书签

  4.2 删除书签所在的段落文字

 

 

使用工具

 

ps:下载安装该类库后,注意添加引用Spire.Doc.dl到项目程序,dll文件可在安装路径的Bin文件夹中获取。



 

【示例1】插入书签

C#

using System;
using Spire.Doc;
using Spire.Doc.Documents;

namespace WordBookmark
{
    class Bookmark
    {
        static void Main(string[] args)
        {
            //实例化Document类,加载文档
            Document document = new Document();
            document.LoadFromFile("test.docx");

            //插入书签到指定段落,并命名书签
            Section section = document.Sections[0];
            section.Paragraphs[1].AppendBookmarkStart("Bookmark1");
            section.Paragraphs[2].AppendBookmarkEnd("Bookmark1");

            //保存并打开文档 
            document.SaveToFile("InsertBookmark.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("InsertBookmark.docx");
        }
    }
}

 

测试效果



 

【示例2】插入图片到书签所在段落

C#

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace InsertImgToBookmark_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建实例,加载文档
            Document document = new Document();
            document.LoadFromFile("test.docx");

            //实例化BookmarksNavigator类,指定需要添加图片的书签“Bookmark1”
            BookmarksNavigator bn = new BookmarksNavigator(document);
            bn.MoveToBookmark("Bookmark1", true, true);

            //添加段落,加载图片并插入到段落
            Section section0 = document.AddSection();
            Paragraph paragraph = section0.AddParagraph();
            Image image = Image.FromFile("img.png");
            DocPicture picture = paragraph.AppendPicture(image);
            bn.InsertParagraph(paragraph);
            document.Sections.Remove(section0);

            //保存文档并打开
            string output = "result.docx";
            document.SaveToFile(output, FileFormat.Docx);
            System.Diagnostics.Process.Start(output);
        }
    }
}

 图片插入效果

 



 

【示例3】插入表格到书签所在段落

C#

using Spire.Doc;
using Spire.Doc.Documents;
using System.Data;

namespace InsertTableToBookmark_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建文档,加载文件
            Document doc = new Document();
            doc.LoadFromFile("test.docx");

            //创建Table对象
            Table table = new Table(doc, true);

            //创建模拟数据
            DataTable dt = new DataTable();
            dt.Columns.Add("PI", typeof(string));
            dt.Columns.Add("Type", typeof(string));
            dt.Columns.Add("Nov.", typeof(string));
            dt.Columns.Add("YTD", typeof(string));                     
            dt.Rows.Add(new string[] { "PI","Type", "Nov.", "YTD" });
            dt.Rows.Add(new string[] { "1", "BAIC EC-Series", "15.719", "64.910" });
            dt.Rows.Add(new string[] { "2", "Tesla Model S", "3.889", "46.951" });
            dt.Rows.Add(new string[] { "3", "Nissan Leaf", "2.817", "46.423" });

            //将数据填充至表格
            table.ResetCells(dt.Rows.Count, dt.Columns.Count);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
             table.Rows[i].Cells[j].AddParagraph().AppendText(dt.Rows[i][j].ToString());
                }
            }

            //获取指定书签位置
            BookmarksNavigator navigator = new BookmarksNavigator(doc);
            navigator.MoveToBookmark("origin2");

            //将表格添加至TextBodyPart
            TextBodyPart part = navigator.GetBookmarkContent();
            part.BodyItems.Add(table);

            //替换书签内容
            navigator.ReplaceBookmarkContent(part);

            //保存并打开文件
            doc.SaveToFile("output.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("output.docx");
        }
    }
}

 表格插入效果

 



 

【示例4】删除书签

C#

using Spire.Doc;
using Spire.Doc.Documents;

namespace Removing
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例化Document类,加载文档
            Document doc = new Document();
            doc.LoadFromFile("sample.docx");

            //创建BookmarksNavigator实例
            BookmarksNavigator navigator = new BookmarksNavigator(doc);

            //指向特定的书签
            navigator.MoveToBookmark("origin2");

            //删除书签中的内容
            navigator.DeleteBookmarkContent(false);

            //删除书签
            doc.Bookmarks.Remove(doc.Bookmarks.FindByName("bookmark1"));
           
            //保存并打开文档
            doc.SaveToFile("RemoveBookmark.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("RemoveBookmark.docx");
        }
    }
}

 书签删除效果前后对比:

测试文档如下



 删除书签后:

 


 

 以上内容为本次“C#操作Word书签的方法”介绍如需转载,请注明出处。

 

  • 大小: 10.3 KB
  • 大小: 83.2 KB
  • 大小: 133.5 KB
  • 大小: 112.8 KB
  • 大小: 130.1 KB
  • 大小: 114.4 KB
0
0
分享到:
评论

相关推荐

    C#操作word里面的书签

    本篇文章将深入探讨如何使用C#来操作Microsoft Word中的书签,以及如何将DataGridView的数据作为表格插入到书签指定的位置。书签在Word文档中起到了定位和标记的作用,它们可以帮助开发者精确地在文档的特定位置进行...

    C#操作word,签入书签,图表,表格

    在C#编程环境中,操作Microsoft Word文档是一项常见的任务,尤其在自动化办公流程或者软件开发中。本主题将深入探讨如何使用C#来处理Word文档,包括添加文本、图片和表格,绘制表格,管理书签,删除空白页,以及对...

    open xml 操作 word 书签

    在Open XML中操作Word书签涉及到对文档结构的深入理解,下面我们将详细探讨这一主题。 1. **Open XML结构** Open XML文档实际上是一组包含了XML文件的ZIP压缩包。打开一个`.docx`文件,你会看到`word`、`rels`、`...

    C#打开Word定位到指定书签

    本话题聚焦于使用C#编程语言实现打开Word文档并定位到特定书签的功能,这是一个非常实用的技术点,尤其适用于帮助系统或者文档查阅场景。在描述中提到了一个具体的例子:当用户点击页面上的“帮助”按钮时,程序会...

    ASP.NET c#操作word模板插入文字、图片及表格

    在ASP.NET中,使用C#操作Word模板插入文字、图片及表格是一项常见的任务,尤其在自动化报告生成或文档处理的应用中。以下是如何实现这一功能的详细步骤和关键知识点: 首先,你需要创建一个Word模板(例如:`person...

    C# NPOI生成word插入图片和表格

    本篇文章将深入探讨如何利用C#和NPOI库来创建Word文档,并在其中插入图片和表格。 首先,让我们了解一下NPOI的基本用法。NPOI提供了IWorkbook接口,它是处理Word文档的核心。对于Word文档,我们可以选择使用...

    DocX类操作WORD文档——把图片插入到书签指定位置

    在Word文档中,书签是一个可以用来标记特定位置的对象,方便后续的操作。我们可以使用DocX的`Document.Bookmarks`属性来访问文档中的所有书签,然后根据书签的名字找到目标书签。 以下是使用DocX库插入图片的基本...

    C#操作word文档 C#实现Word中表格信息读取

    根据提供的文件信息,我们可以归纳出两个主要的知识点:一是如何使用C#操作Word文档并插入图片;二是如何利用C#批量替换Word文档中的书签文本。下面将对这两个知识点进行详细解析。 ### 一、使用C#操作Word文档并...

    C# 定位Word文档中的某个位置插入文本

    ### C# 定位Word文档中的某个位置插入文本 在日常工作中,经常需要对Word文档进行自动化处理,比如批量修改、插入数据等操作。本文将详细介绍如何使用C#语言定位到Word文档中的某个位置并插入文本。具体实现方法...

    C#操作word模板

    ### C#操作Word书签模板知识点详解 #### 一、制作Word书签模板 1. **新建文档**:首先创建一个新的Word文档,并设置好需要的内容。对于需要循环展示的部分(如列表或表格),建议将其放入表格中进行管理,因为表格...

    C# 操作word 接口方法大全

    1. **插入书签**:在C#中,你可以使用`Range`对象的`Bookmarks`属性来创建、访问或修改书签。例如,以下代码会在文档的开头插入一个名为"MyBookmark"的书签: ```csharp Word.Application wordApp = new Word....

    c#word操作类WordHelper

    总的来说,`WordHelper`类是一个强大的工具,它为C#开发者提供了一种高效且灵活的方式来操作Word文档。通过封装复杂的Word操作,它降低了开发难度,提升了开发效率,使得非Office编程专家也能轻松处理Word文档相关的...

    C# 通过书签操作word输出报表 例子

    在提供的压缩包“操作Word书签测试”中,很可能会包含一个示例代码和一个带有书签的Word模板,供你参考和实践。通过分析和运行这个示例,你可以更好地理解如何将上述步骤应用于实际项目中。 总之,C#结合Word的书签...

    C#替换Word中标签的内容.

    在处理大量文档或频繁操作时,需要注意性能优化,避免频繁启动和关闭Word应用,可以考虑一次性启动Word,对所有文档执行替换操作后再关闭。此外,还可以使用更高级的库如OpenXML SDK,它提供更底层的访问,适用于不...

    将ACCESS里的数据写入word指定书签位置

    6. **插入数据**:对于Recordset中的每一行数据,利用Word的API在书签位置插入相应内容。这可能涉及到创建段落、设置字体样式、插入表格等操作。 7. **保存并关闭**:完成数据插入后,记得保存Word文档并关闭它,...

    C#操作Word表格

    //效果类似于在 WORD 中此表格的第二行上进行【插入行】操作,插入的新行将会插入到当前行的上一行中,格式也是和此行一致的。 C#操作Word表格可以实现多种操作,包括向表格中添加行、合并单元格、拆分单元格、设置...

    C# Spire Word替换标签的操作

    在C#中,通过这个库,开发者可以轻松地处理各种Word文档操作,包括格式设置、图片插入、表格操作等。 在“C# Spire Word替换标签的操作”中,关键步骤包括: 1. **导入库**:首先,在C#项目中引入Spire.Doc库。这...

    Word智能书签插入工具

    一般我们搞开发的时候用到的是事先做好一个word模板,在相应位置插入书签,然后程序里在需要导出表格的时候就调用这个模板,往插了书签的地方写文本或者图片,反向思考,这让我想到了能不能往用户给的上万个word文档...

Global site tag (gtag.js) - Google Analytics