C# 操作Word书签(一)插入、删除书签_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C# 操作Word书签(一)插入、删除书签

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

 2018/8/16 12:35:37  Miaonly  程序员俱乐部  我要评论(0)
  • 摘要:概要书签的设置可以帮助我们快速的定位某段文字,使用起来很方便,也很节省时间。对word文档中的书签操作,比较常见的是直接对某段文字插入书签,在下面的示例中,除了介绍插入书签的方法外,也将介绍操作书签的一些拓展方法,包括插入图片、表格到书签位置所在的段落、删除书签等。示例要点如下:1.插入书签2.插入图片到书签3.插入表格到书签4.删除书签4.1删除书签4.2删除书签所在的段落文字使用工具FreeSpire.Docfor.NET6.3(社区版)VisualStudiops:下载安装该类库后
  • 标签:C# 书签 操作

概要

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

1. 插入书签

2. 插入图片到书签

3. 插入表格到书签

4. 删除书签

? 4.1 删除书签

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

?

?

使用工具

  • Free Spire.Doc for .NET 6.3 (社区版)
  • Visual Studio

?

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
  • 查看图片附件
上一篇: 人力资源管理系统中如何应用报表分析 下一篇: 没有下一篇了!
发表评论
用户名: 匿名