概述

OLE,Object Linking and
Embedding,即对象连接与嵌入。大家在统筹程序时,OLE能够用来创建复合文档,把文字、声音、图像、表格、应用程序等类别的新闻整合在协同,在Word中,大家得以经过OLE来贯彻以上因素新闻的整合。上面的演示中校介绍怎么样通过C#
来操作Word中的OLE,示例内容包蕴以下要点:

  • 插入OLE到Word
  • 编辑Word中的OLE
  • 读取Word中的OLE

 

概要

插入图片,组合形象。书签的装置能够援救我们迅速的稳定某段文字,使用起来很有益于,也很节省时间。在前一篇文章“C#
怎么样添加/删除Word书签”中牵线了插入、删除书签的措施,本篇作品将对C#
操作Word书签的机能做尤其介绍。示例内容将包涵以下要点:

  • 在存活书签地方插入图片
  • 在现有书签地方插入表格
  • 读取书签地方的文书档案内容
  • 轮换现有书签地点内容

 

一、序言

在Office
Word中,援助在Word文书档案中插入类型万分丰裕的形态,包含线条、矩形、基本造型(诸如圆形、多边形、星形、括号、笑脸等等图形)、箭头形状、公式形状、流程图、旗帜图形、标注图形等等,大家在编制程序进度中,想要在Word中绘制分裂系列的图纸,能够因而类库来操作。控件Spire.Doc
for .NET 陆.0及以上版本开端帮助Office
Word中的全数图形,能够经过代码操作某些单一的形象,也能够透过将单纯形状实行重组来获取想要的图纸或形状效果,当然,也支持自个儿自定义图形,通过编制程序绘制也是足以的。上边将介绍向Word绘制形状和整合形象的不二等秘书籍,方法中的代码供参考。

PS:

  • Spire.Doc for
    .NET
    获取地址
  • 安装后,dll文件可在装置路径下的Bin文件夹中赢得

Dll引用

金沙注册送58 1

在头里的篇章C#
怎么样插入、修改、删除Word批注一文中牵线了什么操作Word批注的部分艺术,在本篇文章中一而再介绍操作Word批注的法门。分以下三种状态来介绍:

  1. 插入图片到Word批注

  2. 读取Word批注

  3. 回复Word批注

行使工具

  •  Spire.Doc for
    .NET

:下载安装该类库,在编写代码时,注意在先后中丰盛引用Spire.Doc.dll(dll文件可在设置路径下的Bin文件夹中获得)

金沙注册送58 2

行使工具

  • Spire.Doc for .NET
    6.1
  • Visual Studio

ps:下载安装该类库后,注意添加引用Spire.Doc.dl到花色先后,dll文件可在安装路径的Bin文件夹中获得。

金沙注册送58 3

金沙注册送58,二、代码示例

所需工具

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

 PS:下载安装Free Spire.Doc
后,注意在你的主次中丰裕引用Spire.Doc.dll(dll文件可以在安装路径下的Bin文件夹中获得)

金沙注册送58 4

 

示范代码(供参考)

以身作则代码(供参考)

测试文档如下:

金沙注册送58 5

 

 

(1)绘制单1形状

步骤1:添加如下using钦赐

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

 

步骤2:创制示范,添加section、paragraph

//创建一个Document实例
Document doc = new Document();
//添加一个section paragraph
 Section sec = doc.AddSection();
 Paragraph para1 = sec.AddParagraph();

 

手续叁:在文档钦命地方插入形状,并安装形状类型、大小、填充颜色、线条样式等

(那里大约列举多少个模样的足够方法,方法相比较不难,不做赘述,效果图中罗列了有个别模样样式,必要任何样式的形制可活动安装添加)

           //插入一个矩形
            ShapeObject shape1 = para1.AppendShape(50, 50, ShapeType.Rectangle);
            shape1.FillColor = Color.Blue;
            shape1.StrokeColor = Color.LightSkyBlue;
            shape1.HorizontalPosition = 20;
            shape1.VerticalPosition = 20;

            //插入一个圆形
            ShapeObject shape2 = para1.AppendShape(50, 50, ShapeType.Ellipse);
            shape2.FillColor = Color.Purple;
            shape2.StrokeColor = Color.LightPink;
            shape2.LineStyle = ShapeLineStyle.Single;
            shape2.StrokeWeight = 1;
            shape2.HorizontalPosition = 80;
            shape2.VerticalPosition = 20;

            //插入一个公式符号 +
            ShapeObject shape3 = para1.AppendShape(50, 50, ShapeType.Plus);
            shape3.FillColor = Color.DarkCyan;
            shape3.StrokeColor = Color.LightGreen;
            shape3.LineStyle = ShapeLineStyle.Single;
            shape3.StrokeWeight = 1;
            shape3.HorizontalPosition = 140;
            shape3.VerticalPosition = 20;

            //插入一颗星形
            ShapeObject shape4 = para1.AppendShape(50, 50, ShapeType.Star);
            shape4.FillColor = Color.Red;
            shape4.StrokeColor = Color.Gold;
            shape4.LineStyle = ShapeLineStyle.Single;
            shape4.HorizontalPosition = 200;
            shape4.VerticalPosition = 20;

 

步骤四:保存文档

//保存并打开文档
doc.SaveToFile("InsertShapes.docx", FileFormat.Docx2010);
System.Diagnostics.Process.Start("InsertShapes.docx");

 

形象添加效果:

金沙注册送58 6

全数代码:

金沙注册送58 7金沙注册送58 8

  1 using Spire.Doc;
  2 using Spire.Doc.Documents;
  3 using Spire.Doc.Fields;
  4 using System.Drawing;
  5 
  6 namespace AddShapes_Doc
  7 {
  8     class Program
  9     {
 10         static void Main(string[] args)
 11         {
 12             //创建一个Document实例
 13             Document doc = new Document();
 14 
 15             //添加一个section paragraph
 16             Section sec = doc.AddSection();
 17             Paragraph para1 = sec.AddParagraph();
 18 
 19             //插入一个矩形
 20             ShapeObject shape1 = para1.AppendShape(50, 50, ShapeType.Rectangle);
 21             shape1.FillColor = Color.Blue;
 22             shape1.StrokeColor = Color.LightSkyBlue;
 23             shape1.HorizontalPosition = 20;
 24             shape1.VerticalPosition = 20;
 25 
 26             //插入一个圆形
 27             ShapeObject shape2 = para1.AppendShape(50, 50, ShapeType.Ellipse);
 28             shape2.FillColor = Color.Purple;
 29             shape2.StrokeColor = Color.LightPink;
 30             shape2.LineStyle = ShapeLineStyle.Single;
 31             shape2.StrokeWeight = 1;
 32             shape2.HorizontalPosition = 80;
 33             shape2.VerticalPosition = 20;
 34 
 35             //插入一个公式符号 +
 36             ShapeObject shape3 = para1.AppendShape(50, 50, ShapeType.Plus);
 37             shape3.FillColor = Color.DarkCyan;
 38             shape3.StrokeColor = Color.LightGreen;
 39             shape3.LineStyle = ShapeLineStyle.Single;
 40             shape3.StrokeWeight = 1;
 41             shape3.HorizontalPosition = 140;
 42             shape3.VerticalPosition = 20;
 43 
 44             //插入一颗星形
 45             ShapeObject shape4 = para1.AppendShape(50, 50, ShapeType.Star);
 46             shape4.FillColor = Color.Red;
 47             shape4.StrokeColor = Color.Gold;
 48             shape4.LineStyle = ShapeLineStyle.Single;
 49             shape4.HorizontalPosition = 200;
 50             shape4.VerticalPosition = 20;
 51 
 52             //插入一个立方体
 53             ShapeObject shape5 = para1.AppendShape(50, 50, ShapeType.Cube);
 54             shape5.FillColor = Color.OrangeRed;
 55             shape5.StrokeColor = Color.Orange;
 56             shape5.LineStyle = ShapeLineStyle.Single;
 57             shape5.HorizontalPosition = 260;
 58             shape5.VerticalPosition = 20;
 59 
 60             //插入一个圆柱体
 61             ShapeObject shape6 = para1.AppendShape(50, 50, ShapeType.Can);
 62             shape6.FillColor = Color.Goldenrod;
 63             shape6.StrokeColor = Color.Gold;
 64             shape6.LineStyle = ShapeLineStyle.Single;
 65             shape6.HorizontalPosition = 320;
 66             shape6.VerticalPosition = 20;
 67 
 68             //插入一个箭头
 69             ShapeObject shape7 = para1.AppendShape(50, 50, ShapeType.Arrow);
 70             shape7.FillColor = Color.Yellow;
 71             shape7.StrokeColor = Color.Yellow;
 72             shape7.LineStyle = ShapeLineStyle.Single;
 73             shape7.HorizontalPosition = 20;
 74             shape7.VerticalPosition = 80;
 75 
 76             //插入一个v形臂章图形
 77             ShapeObject shape8 = para1.AppendShape(50, 50, ShapeType.Chevron);
 78             shape8.FillColor = Color.YellowGreen;
 79             shape8.StrokeColor = Color.Yellow;
 80             shape8.LineStyle = ShapeLineStyle.Single;
 81             shape8.HorizontalPosition = 80;
 82             shape8.VerticalPosition = 80;
 83 
 84             //插入一个循环箭头图形
 85             ShapeObject shape9 = para1.AppendShape(50, 50, ShapeType.CircularArrow);
 86             shape9.FillColor = Color.Green;
 87             shape9.StrokeColor = Color.Yellow;
 88             shape9.LineStyle = ShapeLineStyle.Single;
 89             shape9.HorizontalPosition = 140;
 90             shape9.VerticalPosition = 80;
 91 
 92             //插入一个云图形
 93             ShapeObject shape10 = para1.AppendShape(50, 50, ShapeType.CloudCallout);
 94             shape10.FillColor = Color.LightSkyBlue;
 95             shape10.StrokeColor = Color.White;
 96             shape10.LineStyle = ShapeLineStyle.Single;
 97             shape10.HorizontalPosition = 200;
 98             shape10.VerticalPosition = 80;
 99 
100             //插入一个环形图
101             ShapeObject shape11 = para1.AppendShape(50, 50, ShapeType.Donut);
102             shape11.FillColor = Color.Pink;
103             shape11.StrokeColor = Color.White;
104             shape11.LineStyle = ShapeLineStyle.Single;
105             shape11.HorizontalPosition = 260;
106             shape11.VerticalPosition = 80;
107 
108             //插入一个波浪形状图
109             ShapeObject shape12 = para1.AppendShape(50, 50, ShapeType.DoubleWave);
110             shape12.FillColor = Color.Plum;
111             shape12.StrokeColor = Color.White;
112             shape12.LineStyle = ShapeLineStyle.Single;
113             shape12.HorizontalPosition = 320;
114             shape12.VerticalPosition = 80;
115 
116             //插入一个礼结状图形
117             ShapeObject shape13 = para1.AppendShape(50, 50, ShapeType.EllipseRibbon);
118             shape13.FillColor = Color.RosyBrown;
119             shape13.StrokeColor = Color.White;
120             shape13.LineStyle = ShapeLineStyle.Single;
121             shape13.HorizontalPosition = 20;
122             shape13.VerticalPosition = 140;
123 
124             //插入一个心形图
125             ShapeObject shape14 = para1.AppendShape(50, 50, ShapeType.Heart);
126             shape14.FillColor = Color.Red;
127             shape14.StrokeColor = Color.White;
128             shape14.LineStyle = ShapeLineStyle.Single;
129             shape14.HorizontalPosition = 80;
130             shape14.VerticalPosition = 140;
131 
132             //插入一个六边形图形
133             ShapeObject shape15 = para1.AppendShape(50, 50, ShapeType.Hexagon);
134             shape15.FillColor = Color.DarkCyan;
135             shape15.StrokeColor = Color.White;
136             shape15.LineStyle = ShapeLineStyle.Single;
137             shape15.HorizontalPosition = 140;
138             shape15.VerticalPosition = 140;
139 
140             //插入一个不规则图形
141             ShapeObject shape16 = para1.AppendShape(50, 50, ShapeType.IrregularSeal1);
142             shape16.FillColor = Color.DeepPink;
143             shape16.StrokeColor = Color.White;
144             shape16.LineStyle = ShapeLineStyle.Single;
145             shape16.HorizontalPosition = 200;
146             shape16.VerticalPosition = 140;
147 
148             //插入一个月亮形状
149             ShapeObject shape17 = para1.AppendShape(50, 50, ShapeType.Moon);
150             shape17.FillColor = Color.Violet;
151             shape17.StrokeColor = Color.White;
152             shape17.LineStyle = ShapeLineStyle.Single;
153             shape17.HorizontalPosition = 260;
154             shape17.VerticalPosition = 140;
155 
156             //插入一个"禁止"形状
157             ShapeObject shape18 = para1.AppendShape(50, 50, ShapeType.NoSmoking);
158             shape18.FillColor = Color.Yellow;
159             shape18.StrokeColor = Color.Goldenrod;
160             shape18.LineStyle = ShapeLineStyle.Single;
161             shape18.HorizontalPosition = 320;
162             shape18.VerticalPosition = 140;
163 
164             //保存并打开文档
165             doc.SaveToFile("InsertShapes.docx", FileFormat.Docx2010);
166             System.Diagnostics.Process.Start("InsertShapes.docx");
167         }
168     }
169 }

View Code

 

以身作则代码

【示例1】插入OLE到Word

步骤 1 :添加using指令

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

手续 二 :成立文书档案

//实例化一个Document类对象
Document doc = new Document();
//向文档中添加一个Section对象,并添加段落
Section sec = doc.AddSection();
Paragraph p = sec.AddParagraph();

手续 三 :加载图片

//实例化一个DocPicture类对象,加载图片
DocPicture picture = new DocPicture(doc);
Image image = Image.FromFile(@"chart1.png");
picture.LoadImage(image);

步骤 4 :插入OLE

//在文档中插入一个工作表, OleLinkType 枚举值控制该OLE是链接还是嵌入
DocOleObject obj = p.AppendOleObject(@"testfile.xlsx", picture, OleLinkType.Link);
//DocOleObject obj = p.AppendOleObject(@"testfile.xlsx", picture, OleLinkType.Embed);

手续 伍 :保存文书档案

//保存并打开文档
doc.SaveToFile("添加OLE.docx");
System.Diagnostics.Process.Start("添加OLE.docx");

姣好代码后,调节和测试运维程序,生成文书档案。

测试结果,如下图所示:

金沙注册送58 9

全套代码:

金沙注册送58 10金沙注册送58 11

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

namespace InsertOLE_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例化一个Document类对象
            Document doc = new Document();
            //向文档中添加一个Section对象,并添加段落
            Section sec = doc.AddSection();
            Paragraph p = sec.AddParagraph();

            //实例化一个DocPicture类对象,加载图片
            DocPicture picture = new DocPicture(doc);
            Image image = Image.FromFile(@"chart1.png");
            picture.LoadImage(image);

            //在文档中插入一个工作表, OleLinkType 枚举值控制该OLE是链接还是嵌入         
            DocOleObject obj = p.AppendOleObject(@"testfile.xlsx", picture, OleLinkType.Link);
            //DocOleObject obj = p.AppendOleObject(@"testfile.xlsx", picture, OleLinkType.Embed);

            //保存并打开文档
            doc.SaveToFile("添加OLE.docx");
            System.Diagnostics.Process.Start("添加OLE.docx");
        }
    }
}

View Code

 

 

【示例壹】 在现有书签地方插入图片

步骤 1: 添加using指令

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

步骤 二 :主要代码段

//创建实例,加载文档
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);

图片插入效果:

 金沙注册送58 12

整整代码:

金沙注册送58 13金沙注册送58 14

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);
        }
    }
}

View Code

 

(二)添加组合造型

手续1:添加如下using指令

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

 

手续二:创设文书档案,添加section、paragraph

Document doc = new Document();
Section sec = doc.AddSection();
Paragraph para1 = sec.AddParagraph();

 

步骤3:添加文字,并动用格式到文字

para1.AppendText("中日文化交流");
ParagraphStyle style1 = new ParagraphStyle(doc);
style1.Name = "titleStyle";
style1.CharacterFormat.Bold = true;
style1.CharacterFormat.FontName = "隶书";
style1.CharacterFormat.FontSize = 30f;
doc.Styles.Add(style1);
para1.ApplyStyle("titleStyle");
para1.Format.HorizontalAlignment = HorizontalAlignment.Center;

 

手续四:实例化段落2,并成立1个造型组合,并安装大小

//实例化段落2
Paragraph para2 = sec.AddParagraph();
//创建一个形状组合并设置大小
ShapeGroup shapegr = para2.AppendShapeGroup(300, 300);

 

手续五:绘制三个中华国旗,那里须要整合形象矩形和5角星形,并填写相应的颜料

 //添加一个矩形到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle)
            {
                Width = 900,
                Height = 500,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Red,
                StrokeColor = Color.Red,                
                StrokeWeight = 1,
            });

            //添加第一个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 100,
                Height = 100,
                VerticalPosition = 90,
                HorizontalPosition = 90,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });
            //添加第二个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 50,
                Height = 50,
                VerticalPosition = 40,
                HorizontalPosition = 210,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });
            //添加第三个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 50,
                Height = 50,
                VerticalPosition = 80,
                HorizontalPosition = 280,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });
            //添加第四个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 50,
                Height = 50,
                VerticalPosition = 160,
                HorizontalPosition = 280,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });
            //添加第五个五角星到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
            {
                Width = 50,
                Height = 50,
                VerticalPosition = 220,
                HorizontalPosition = 210,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Yellow,
                StrokeColor = Color.Yellow,
                StrokeWeight = 1,
            });

 

手续六:绘制3个东瀛国旗,须求结合造型矩形和圆形,并填写颜色

//绘制一个矩形并添加到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle)
            {
                Width = 900,
                Height = 500,
                VerticalPosition = 700,
                HorizontalPosition = 600,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.WhiteSmoke,
                StrokeColor = Color.WhiteSmoke,
                StrokeWeight = 1,
            });
            //绘制一个圆形并添加到形状组合
            shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Ellipse)
            {
                Width = 250,
                Height = 250,
                VerticalPosition = 800,
                HorizontalPosition = 900,
                LineStyle = ShapeLineStyle.Single,
                FillColor = Color.Red,
                StrokeColor = Color.Red,
                StrokeWeight = 1,
            });

 

手续7:保存文书档案

//保存并打开文档
doc.SaveToFile("InsertShapegroups.docx", FileFormat.Docx2010);
System.Diagnostics.Process.Start("InsertShapegroups.docx");

 

增进意义:

金沙注册送58 15

(此时的图样是组成后的效用,任意拖动图形不汇合世各样形态分离、错位的图景。)

方方面面代码:

金沙注册送58 16金沙注册送58 17

  1 using Spire.Doc;
  2 using Spire.Doc.Documents;
  3 using Spire.Doc.Fields;
  4 using System.Drawing;
  5 
  6 namespace InsertShapesGroup_Doc
  7 {
  8     class Program
  9     {
 10         static void Main(string[] args)
 11         {
 12             //创建一个Document实例并添加section及paragraph
 13             Document doc = new Document();
 14             Section sec = doc.AddSection();
 15             Paragraph para1 = sec.AddParagraph();
 16             //添加文字,并应用格式到文字
 17             para1.AppendText("中日文化交流");
 18             ParagraphStyle style1 = new ParagraphStyle(doc);
 19             style1.Name = "titleStyle";
 20             style1.CharacterFormat.Bold = true;
 21             style1.CharacterFormat.FontName = "隶书";
 22             style1.CharacterFormat.FontSize = 30f;
 23             doc.Styles.Add(style1);
 24             para1.ApplyStyle("titleStyle");
 25             para1.Format.HorizontalAlignment = HorizontalAlignment.Center;
 26 
 27             //实例化段落2
 28             Paragraph para2 = sec.AddParagraph();
 29             //创建一个形状组合并设置大小
 30             ShapeGroup shapegr = para2.AppendShapeGroup(300, 300);
 31 
 32             //添加一个矩形到形状组合
 33             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle)
 34             {
 35                 Width = 900,
 36                 Height = 500,
 37                 LineStyle = ShapeLineStyle.Single,
 38                 FillColor = Color.Red,
 39                 StrokeColor = Color.Red,                
 40                 StrokeWeight = 1,
 41             });
 42 
 43             //添加第一个五角星到形状组合
 44             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
 45             {
 46                 Width = 100,
 47                 Height = 100,
 48                 VerticalPosition = 90,
 49                 HorizontalPosition = 90,
 50                 LineStyle = ShapeLineStyle.Single,
 51                 FillColor = Color.Yellow,
 52                 StrokeColor = Color.Yellow,
 53                 StrokeWeight = 1,
 54             });
 55             //添加第二个五角星到形状组合
 56             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
 57             {
 58                 Width = 50,
 59                 Height = 50,
 60                 VerticalPosition = 40,
 61                 HorizontalPosition = 210,
 62                 LineStyle = ShapeLineStyle.Single,
 63                 FillColor = Color.Yellow,
 64                 StrokeColor = Color.Yellow,
 65                 StrokeWeight = 1,
 66             });
 67             //添加第三个五角星到形状组合
 68             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
 69             {
 70                 Width = 50,
 71                 Height = 50,
 72                 VerticalPosition = 80,
 73                 HorizontalPosition = 280,
 74                 LineStyle = ShapeLineStyle.Single,
 75                 FillColor = Color.Yellow,
 76                 StrokeColor = Color.Yellow,
 77                 StrokeWeight = 1,
 78             });
 79             //添加第四个五角星到形状组合
 80             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
 81             {
 82                 Width = 50,
 83                 Height = 50,
 84                 VerticalPosition = 160,
 85                 HorizontalPosition = 280,
 86                 LineStyle = ShapeLineStyle.Single,
 87                 FillColor = Color.Yellow,
 88                 StrokeColor = Color.Yellow,
 89                 StrokeWeight = 1,
 90             });
 91             //添加第五个五角星到形状组合
 92             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Star)
 93             {
 94                 Width = 50,
 95                 Height = 50,
 96                 VerticalPosition = 220,
 97                 HorizontalPosition = 210,
 98                 LineStyle = ShapeLineStyle.Single,
 99                 FillColor = Color.Yellow,
100                 StrokeColor = Color.Yellow,
101                 StrokeWeight = 1,
102             });
103 
104             //绘制一个矩形并添加到形状组合
105             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Rectangle)
106             {
107                 Width = 900,
108                 Height = 500,
109                 VerticalPosition = 700,
110                 HorizontalPosition = 600,
111                 LineStyle = ShapeLineStyle.Single,
112                 FillColor = Color.WhiteSmoke,
113                 StrokeColor = Color.Wheat,
114                 StrokeWeight = 1,
115             });
116             //绘制一个圆形并添加到形状组合
117             shapegr.ChildObjects.Add(new ShapeObject(doc, ShapeType.Ellipse)
118             {
119                 Width = 250,
120                 Height = 250,
121                 VerticalPosition = 800,
122                 HorizontalPosition = 900,
123                 LineStyle = ShapeLineStyle.Single,
124                 FillColor = Color.Red,
125                 StrokeColor = Color.Red,
126                 StrokeWeight = 1,
127             });    
128 
129             //保存并打开文档
130             doc.SaveToFile("InsertShapegroups.docx", FileFormat.Docx2010);
131             System.Diagnostics.Process.Start("InsertShapegroups.docx");
132         }
133     }
134 }

View Code

 

如上全部是关于Word中绘制图形形状的始末。如需转发,请注解出处!

感谢阅读!

1. 布置图片到Word批注

步骤 1:添加using指令

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

手续 二:成立文书档案,加载测试文件

Document doc = new Document();
doc.LoadFromFile("testfile.docx");

手续 三 :获取段落

Paragraph paragraph = doc.Sections[0].Paragraphs[2];

手续 四 :添加文本、图片到批注

Comment comment = paragraph.AppendComment("探索黑科技,小米为发烧而生!");
comment.Format.Author = "Administor";  

DocPicture docPicture = new DocPicture(doc);
Image img = Image.FromFile("mi.png");
docPicture.LoadImage(img);
//插入图片到批注
comment.Body.AddParagraph().ChildObjects.Add(docPicture);

手续 伍 :保存文件

doc.SaveToFile("result.docx", FileFormat.Docx2013);
System.Diagnostics.Process.Start("result.docx");

 

测试结果:

金沙注册送58 18

C#全部代码:

金沙注册送58 19金沙注册送58 20

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

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

            //获取需要添加批注的段落
            Paragraph paragraph = doc.Sections[0].Paragraphs[2];

            //添加文本批注内容、批注作者
            Comment comment = paragraph.AppendComment("探索黑科技,小米为发烧而生!");
            comment.Format.Author = "Administor";

            //实例化DocPicture类,加载图片
            DocPicture docPicture = new DocPicture(doc);
            Image img = Image.FromFile("mi.png");
            docPicture.LoadImage(img);
            //插入图片到批注
            comment.Body.AddParagraph().ChildObjects.Add(docPicture);

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

View Code

VB.NET代码:

金沙注册送58 21金沙注册送58 22

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing

Namespace InsertImgToComment_Doc
    Class Program
        Private Shared Sub Main(ByVal args As String())
            Dim doc As Document = New Document()
            doc.LoadFromFile("testfile.docx")
            Dim paragraph As Paragraph = doc.Sections(0).Paragraphs(2)
            Dim comment As Comment = paragraph.AppendComment("探索黑科技,小米为发烧而生!")
            comment.Format.Author = "Administor"
            Dim docPicture As DocPicture = New DocPicture(doc)
            Dim img As Image = Image.FromFile("mi.png")
            docPicture.LoadImage(img)
            comment.Body.AddParagraph().ChildObjects.Add(docPicture)
            doc.SaveToFile("result.docx", FileFormat.Docx2013)
            System.Diagnostics.Process.Start("result.docx")
        End Sub
    End Class
End Namespace

View Code

 

【示例2】编辑Word中的OLE

 (那里以上文中生成的文书档案为测试文件)

步骤 1 :添加using指令

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

手续 2 :加载文档

//实例化一个Document对象,加载含有OLE的Word文档
Document doc = new Document();
doc.LoadFromFile("test.docx");

步骤 叁 :获取section中的全部OLE,依据必要来更改OLE的品种和链接对象

//获取第一个Section
Section sec = doc.Sections[0];

//遍历这个Section中的所有子元素,找到段落下的OLE对象
foreach (DocumentObject obj in sec.Body.ChildObjects)
{
    if (obj is Paragraph)
    {
        Paragraph par = obj as Paragraph;
        foreach (DocumentObject paraObj in par.ChildObjects)
        {
            //找到OLE对象,根据类型来进行更改操作
            if (paraObj.DocumentObjectType == DocumentObjectType.OleObject)
            {
                DocOleObject Ole = paraObj as DocOleObject;
                //如果是链接, 修改对象的链接路径
                if (Ole.LinkType == OleLinkType.Link)
                {
                    //同时还要手动去更改OLE的图片
                    DocPicture pic = Ole.OlePicture;
                    pic.LoadImage(Image.FromFile("Img.png"));
                    Ole.LinkPath = @"sample.docx";
                }
                //如果是嵌入,更改数据即可
                byte[] bys = File.ReadAllBytes(@"sample.docx");
                if (Ole.LinkType == OleLinkType.Embed)
                {
                    DocPicture pic = new DocPicture(doc);
                    pic.LoadImage(Image.FromFile(@"Img.png"));
                    Ole.ObjectType = "Word.Document.12";
                    Ole.SetOlePicture(pic);
                    Ole.SetNativeData(bys);
                }
            }
        }
    }
}

手续 ④ :保存文书档案

 //保存修改后的文档,并打开
 doc.SaveToFile("修改OLE.docx", Spire.Doc.FileFormat.Docx2010);
 System.Diagnostics.Process.Start("修改OLE.docx");

调剂运营程序后,生成文书档案。打开文书档案时,生成的文书档案中原始的插入OLE的图形和链接的文书档案都已经济体改变了,如下所示:

 金沙注册送58 23

方方面面代码:

金沙注册送58 24金沙注册送58 25

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

namespace EditOLE_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例化一个Document对象,加载含有OLE的Word文档
            Document doc = new Document();
            doc.LoadFromFile("test.docx");

            //获取第一个Section
            Section sec = doc.Sections[0];

            //遍历这个Section中的所有子元素,找到段落下的OLE对象
            foreach (DocumentObject obj in sec.Body.ChildObjects)
            {
                if (obj is Paragraph)
                {
                    Paragraph par = obj as Paragraph;
                    foreach (DocumentObject paraObj in par.ChildObjects)
                    {
                        //找到OLE对象,根据类型来进行更改操作
                        if (paraObj.DocumentObjectType == DocumentObjectType.OleObject)
                        {
                            DocOleObject Ole = paraObj as DocOleObject;
                            //如果是链接, 修改对象的链接路径
                            if (Ole.LinkType == OleLinkType.Link)
                            {
                                //同时还要手动去更改OLE的图片
                                DocPicture pic = Ole.OlePicture;
                                pic.LoadImage(Image.FromFile("Img.png"));
                                Ole.LinkPath = @"sample.docx";
                            }
                            //如果是嵌入,更改数据即可
                            byte[] bys = File.ReadAllBytes(@"sample.docx");
                            if (Ole.LinkType == OleLinkType.Embed)
                            {
                                DocPicture pic = new DocPicture(doc);
                                pic.LoadImage(Image.FromFile(@"Img.png"));
                                Ole.ObjectType = "Word.Document.12";
                                Ole.SetOlePicture(pic);
                                Ole.SetNativeData(bys);
                            }
                        }
                    }
                }
            }
            //保存修改后的文档,并打开
            doc.SaveToFile("修改OLE.docx", Spire.Doc.FileFormat.Docx2010);
            System.Diagnostics.Process.Start("修改OLE.docx");
        }
    }
}

View Code

 【示例 二】在现有书签地方插入表格

步骤 1:添加using指令

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

手续 2 :创建文书档案,加载文件

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);

手续 5 :保存文件

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

 

 表格插入效果:

金沙注册送58 26

凡事代码:

金沙注册送58 27金沙注册送58 28

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");
        }
    }
}

View Code

 

2.读取Word批注

步骤 1 :添加using指令

using System.Text;
using System.IO;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

步骤 二 :创造实例,加载文书档案

Document doc = new Document();
doc.LoadFromFile("test.docx");

手续 3 :将批注内容写入Txt文档

//实例化StringBuilder类
StringBuilder SB = new StringBuilder();
//遍历所有word批注,将批注内容写入Txt文档
foreach (Comment comment in doc.Comments)
{
    foreach (Paragraph p in comment.Body.Paragraphs)
    {
        SB.AppendLine(p.Text);
    }
}
File.WriteAllText("CommentExtraction.txt", SB.ToString());
System.Diagnostics.Process.Start("CommentExtraction.txt");

金沙注册送58 29

C# 全体代码:

金沙注册送58 30金沙注册送58 31

using System.Text;
using System.IO;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

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

            //实例化StringBuilder类
            StringBuilder SB = new StringBuilder();
            //遍历所有word批注,将批注内容写入Txt文档
            foreach (Comment comment in doc.Comments)
            {
                foreach (Paragraph p in comment.Body.Paragraphs)
                {
                    SB.AppendLine(p.Text);
                }
            }
            File.WriteAllText("CommentExtraction.txt", SB.ToString());
            System.Diagnostics.Process.Start("CommentExtraction.txt");
        }
    }
}

View Code

VB.NET 代码

金沙注册送58 32金沙注册送58 33

Imports System.Text
Imports System.IO
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields

Namespace ExtractComments
    Class Program
        Private Shared Sub Main(ByVal args As String())
            Dim doc As Document = New Document()
            doc.LoadFromFile("test.docx")
            Dim SB As StringBuilder = New StringBuilder()

            For Each comment As Comment In doc.Comments

                For Each p As Paragraph In comment.Body.Paragraphs
                    SB.AppendLine(p.Text)
                Next
            Next

            File.WriteAllText("CommentExtraction.txt", SB.ToString())
            System.Diagnostics.Process.Start("CommentExtraction.txt")
        End Sub
    End Class
End Namespace

View Code

 

【示例3】读取Word中的OLE

 步骤 1 :添加using指令

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

手续 二 :加载文件

//实例化一个Document对象,加载一个有OLE对象的文档
Document doc = new Document();          
doc.LoadFromFile(@"test.docx");

步骤 3 :遍历section,读取OLE

//遍历文档所有Section          
            foreach (Section sec in doc.Sections)
            {
                //遍历Section下面所有的子元素
                foreach (DocumentObject obj in sec.Body.ChildObjects)
                {
                    if (obj is Paragraph)
                    {
                        Paragraph par = obj as Paragraph;
                        //遍历这个section下面的段落
                        foreach (DocumentObject o in par.ChildObjects)
                        {
                            //找到OLE对象,并根据类型提取
                            if (o.DocumentObjectType == DocumentObjectType.OleObject)
                            {
                                DocOleObject Ole = o as DocOleObject;
                                /*ObjectType属性可以获取ole对象的具体类型。
                                注意,如果是用Spire.Doc添加的ole对象的话,需要在AppendOleObject
                                的时候先声明OleObjectType,不然这里得不到具体的类型,只会得到Package*/
                                string s = Ole.ObjectType;
                                //"AcroExch.Document.11"是指PDF对象对应的ProgID
                                if (s == "AcroExch.Document.11")
                                {
                                    File.WriteAllBytes("Result.pdf", Ole.NativeData);
                                }
                                //"Excel.Sheet.12"是指 Excel03之后的工作表对应的ProgID
                                else if (s == "Excel.Sheet.12")
                                {
                                    File.WriteAllBytes("Result.xlsx", Ole.NativeData);
                                }
                                //"Word.Document.12"是指03之后的Word对应的ProgID
                                else if (s == "Word.Document.12")
                                {
                                    File.WriteAllBytes("Result.docx", Ole.NativeData);
                                }
                            }
                        }
                    }
                }
            }

调节运转程序,生成文书档案,如下:

 金沙注册送58 34

全副代码:

金沙注册送58 35金沙注册送58 36

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

namespace ReadOLE_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例化一个Document对象,加载一个有OLE对象的文档
            Document doc = new Document();          
            doc.LoadFromFile(@"test.docx");

            //遍历文档所有Section          
            foreach (Section sec in doc.Sections)
            {
                //遍历Section下面所有的子元素
                foreach (DocumentObject obj in sec.Body.ChildObjects)
                {
                    if (obj is Paragraph)
                    {
                        Paragraph par = obj as Paragraph;
                        //遍历这个section下面的段落
                        foreach (DocumentObject o in par.ChildObjects)
                        {
                            //找到OLE对象,并根据类型提取
                            if (o.DocumentObjectType == DocumentObjectType.OleObject)
                            {
                                DocOleObject Ole = o as DocOleObject;
                                /*ObjectType属性可以获取ole对象的具体类型。
                                注意,如果是用Spire.Doc添加的ole对象的话,需要在AppendOleObject
                                的时候先声明OleObjectType,不然这里得不到具体的类型,只会得到Package*/
                                string s = Ole.ObjectType;
                                //"AcroExch.Document.11"是指PDF对象对应的ProgID
                                if (s == "AcroExch.Document.11")
                                {
                                    File.WriteAllBytes("Result.pdf", Ole.NativeData);
                                }
                                //"Excel.Sheet.12"是指 Excel03之后的工作表对应的ProgID
                                else if (s == "Excel.Sheet.12")
                                {
                                    File.WriteAllBytes("Result.xlsx", Ole.NativeData);
                                }
                                //"Word.Document.12"是指03之后的Word对应的ProgID
                                else if (s == "Word.Document.12")
                                {
                                    File.WriteAllBytes("Result.docx", Ole.NativeData);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

View Code

如上是这次关于C# 操作word中的OLE的全体内容。示例方法供参考。

 

本文完。

如需转发,请表明出处!

【示例3】读取书签地方的内容

步骤 1 :添加using指令

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

步骤 贰 :获取书签地点的内容

//初始化BookmarkNavigator类对象
BookmarksNavigator navigator = new BookmarksNavigator(doc);
//定位到指定书签位置,获取书签位置的文档内容
navigator.MoveToBookmark("bookmark1");
TextBodyPart textBodyPart = navigator.GetBookmarkContent();

步骤 三 :读取书签内容

//遍历书签内容中的子项目,并将文本信息提取至string类型变量中
string text = null;
foreach (var item in textBodyPart.BodyItems)
{
    if (item is Paragraph)
    {
        foreach (var childObject in (item as Paragraph).ChildObjects)
        {
            if (childObject is TextRange)
            {
                text += (childObject as TextRange).Text;
            }
        }
    }
}
//控制台输出文本
Console.WriteLine(text);
Console.ReadLine();

 

 读取结果:

金沙注册送58 37

整个代码:

金沙注册送58 38金沙注册送58 39

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

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

            //初始化BookmarkNavigator类对象
            BookmarksNavigator navigator = new BookmarksNavigator(doc);
            //定位到指定书签位置,获取书签位置的文档内容
            navigator.MoveToBookmark("bookmark1");
            TextBodyPart textBodyPart = navigator.GetBookmarkContent();

            //遍历书签内容中的子项目,并将文本信息提取至string类型变量中
            string text = null;
            foreach (var item in textBodyPart.BodyItems)
            {
                if (item is Paragraph)
                {
                    foreach (var childObject in (item as Paragraph).ChildObjects)
                    {
                        if (childObject is TextRange)
                        {
                            text += (childObject as TextRange).Text;
                        }
                    }
                }
            }
            //控制台输出文本
            Console.WriteLine(text);
            Console.ReadLine();
        }
    }
}

View Code

 

三. 重操旧业Word批注内容

步骤 1 :添加using指令 

using Spire.Doc;
using Spire.Doc.Fields;

手续 二 :创设实例

Document doc = new Document();
doc.LoadFromFile("test.docx");

手续 三 :获取批注

Comment comment = doc.Comments[0];

手续 4 :回复批注

Comment replyComment = new Comment(doc);
replyComment.Format.Author = "Adam";
replyComment.Body.AddParagraph().AppendText("这条批注内容请再丰富一下,内容有些单调");
comment.ReplyToComment(replyComment);

手续 5 :保存文件

doc.SaveToFile("ReplyToComment.docx", FileFormat.Docx2013);
System.Diagnostics.Process.Start("ReplyToComment.docx");

 

测试结果:

金沙注册送58 40

C# 全部代码:

金沙注册送58 41金沙注册送58 42

using Spire.Doc;
using Spire.Doc.Fields;

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

            //获取第一个批注
            Comment comment = doc.Comments[0];

            //实例化Comment类,添加批注回复作者以及回复内容
            Comment replyComment = new Comment(doc);
            replyComment.Format.Author = "Adam";
            replyComment.Body.AddParagraph().AppendText("这条批注内容请再丰富一下,内容有些单调");
            comment.ReplyToComment(replyComment);

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

View Code

VB.NET 代码:

金沙注册送58 43金沙注册送58 44

Imports Spire.Doc
Imports Spire.Doc.Fields

Namespace ReplyComment_Doc
    Class Program
        Private Shared Sub Main(ByVal args As String())
            Dim doc As Document = New Document()
            doc.LoadFromFile("test.docx")
            Dim comment As Comment = doc.Comments(0)
            Dim replyComment As Comment = New Comment(doc)
            replyComment.Format.Author = "Adam"
            replyComment.Body.AddParagraph().AppendText("这条批注内容请再丰富一下,内容有些单调")
            comment.ReplyToComment(replyComment)
            doc.SaveToFile("ReplyToComment.docx", FileFormat.Docx2013)
            System.Diagnostics.Process.Start("ReplyToComment.docx")
        End Sub
    End Class
End Namespace

View Code

如上为此番关于操作Word批注的全部内容。

(本文完)

如需转发,请注解出处。

【示例四】替换现有书签内容

步骤 1 :添加using指令

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

步骤 二 :加载文书档案

Document document = new Document();
document.LoadFromFile("test.docx");

手续 3 :添加段落及文字

Section sec = document.AddSection();//添加section
sec.AddParagraph().AppendText("Welcome Back, \n My Friend!"); //添加段落到section,并添加字符串内容

手续 4 :获取段落

//获取段落内容 
ParagraphBase firstReplacementParagraph = sec.Paragraphs[0].Items.FirstItem as ParagraphBase;
ParagraphBase lastReplacementParagraph = sec.Paragraphs[sec.Paragraphs.Count - 1].Items.LastItem as ParagraphBase;
//实例化类TextBodySelection和TextBodyPart
TextBodySelection selection = new TextBodySelection(firstReplacementParagraph, lastReplacementParagraph);
TextBodyPart part = new TextBodyPart(selection);

手续 5 :替换书签内容

BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);//实例化BookmarksNavigator类 
bookmarkNavigator.MoveToBookmark("bookmark1", true, true);//定位到书签“bookmark1”所在段落的位置
bookmarkNavigator.DeleteBookmarkContent(true);//删除原有书签位置的内容
bookmarkNavigator.ReplaceBookmarkContent(part, true, true);//用新添加段落的内容替换掉原书签的内容并保留格式
document.Sections.Remove(sec); //移除section

手续 陆 :保存文书档案

//保存文档并打开
document.SaveToFile("替换书签.docx");
System.Diagnostics.Process.Start("替换书签.docx");

 

轮换效果:

金沙注册送58 45

全总代码:

金沙注册送58 46金沙注册送58 47

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

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

            Section sec = document.AddSection();//添加section
            sec.AddParagraph().AppendText("Welcome Back, \n My Friend!"); //添加段落到section,并添加字符串内容

            //获取段落内容 
            ParagraphBase firstReplacementParagraph = sec.Paragraphs[0].Items.FirstItem as ParagraphBase;
            ParagraphBase lastReplacementParagraph = sec.Paragraphs[sec.Paragraphs.Count - 1].Items.LastItem as ParagraphBase;
            //实例化类TextBodySelection和TextBodyPart
            TextBodySelection selection = new TextBodySelection(firstReplacementParagraph, lastReplacementParagraph);
            TextBodyPart part = new TextBodyPart(selection);

            BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);//实例化BookmarksNavigator类 
            bookmarkNavigator.MoveToBookmark("bookmark1", true, true);//定位到书签“bookmark1”所在段落的位置
            bookmarkNavigator.DeleteBookmarkContent(true);//删除原有书签位置的内容
            bookmarkNavigator.ReplaceBookmarkContent(part, true, true);//用新添加段落的内容替换掉原书签的内容并保留格式            
            document.Sections.Remove(sec); //移除section

            //保存文档并打开
            document.SaveToFile("替换书签.docx");
            System.Diagnostics.Process.Start("替换书签.docx");
        }
    }
}

View Code

 

上述是这一次关于C# 操作Word书签效能的补充介绍,如需转发,请表明出处。

(本文完)

 

相关文章

网站地图xml地图