书签的设置可以帮助我们快速的定位某段文字,使用起来很方便,也很节省时间。在前一篇文章“C# 如何添加/删除Word书签”中介绍了插入、删除书签的方法,本篇文章将对C# *** 作Word书签的功能做进一步介绍。示例内容将包含以下要点:
在现有书签位置插入图片在现有书签位置插入表格读取书签位置的文档内容替换现有书签位置内容使用工具Spire.Doc for .NET 6.1Visual Studio
ps:下载安装该类库后,注意添加引用Spire.Doc.dl到项目程序,dll文件可在安装路径的Bin文件夹中获取。
示例代码(供参考)测试文档如下:
【示例1】 在现有书签位置插入图片
步骤 1: 添加using指令
using Spire.Doc; Spire.Doc.documents; Spire.Doc.FIElds;using System.Drawing;
步骤 2 :主要代码段
//创建实例,加载文档document document = new document();document.LoadFromfile("test.docx");实例化BookmarksNavigator类,指定需要添加图片的书签“Bookmark1”BookmarksNavigator bn = BookmarksNavigator(document);bn.MovetoBookmark(Bookmark1",true,1)">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);
图片插入效果:
全部代码:
System.Drawing;namespace InsertimgToBookmark_Doc{ class Program { static voID Main(string[] args) { 创建实例,加载文档 document document = document(); document.LoadFromfile(); BookmarksNavigator(document); bn.MovetoBookmark(添加段落,加载图片并插入到段落 Section section0 = document.AddSection(); Paragraph paragraph = section0.AddParagraph(); Image image = Image.Fromfile(); DocPicture picture = paragraph.AppendPicture(image); bn.InsertParagraph(paragraph); document.Sections.Remove(section0); 保存文档并打开 ; document.Savetofile(output,fileFormat.Docx); System.Diagnostics.Process.Start(output); } }}VIEw Code
【示例 2】在现有书签位置插入表格
步骤 1:添加using指令
using System.Data;
步骤 2 :创建文档,加载文件
document doc = document();doc.LoadFromfile(");
步骤 3 :创建表格
创建table对象table table = new table(doc,1)">创建模拟数据Datatable dt = Datatable();dt.Columns.Add(PItypeof());dt.Columns.Add(TypeNov.YTD)); dt.Rows.Add(new string[] { });dt.Rows.Add(1BAIC EC-SerIEs15.71964.9102Tesla Model S3.88946.9513Nissan Leaf2.81746.423 });将数据填充至表格table.resetCells(dt.Rows.Count,dt.Columns.Count);for (int i = 0; i < dt.Rows.Count; i++){ int j = 0; j < dt.Columns.Count; j++) { table.Rows[i].Cells[j].AddParagraph().AppendText(dt.Rows[i][j].ToString()); }}
步骤 4 :插入表格到书签位置
获取指定书签位置BookmarksNavigator navigator = BookmarksNavigator(doc);navigator.MovetoBookmark(origin2将表格添加至TextbodyPartTextbodyPart part = navigator.GetBookmarkContent();part.BodyItems.Add(table);替换原有书签内容navigator.ReplaceBookmarkContent(part);
步骤 5 :保存文件
保存并打开文件doc.Savetofile(output.docx,fileFormat.Docx2013);System.Diagnostics.Process.Start(");
表格插入效果:
全部代码:
System.Data; InserttableToBookmark_Doc{ 创建文档,加载文件 document doc = document(); doc.LoadFromfile(创建table对象 table table = 创建模拟数据 Datatable dt = Datatable(); dt.Columns.Add()); dt.Columns.Add()); dt.Rows.Add( }); dt.Rows.Add( }); table.resetCells(dt.Rows.Count,dt.Columns.Count); ) { ) { table.Rows[i].Cells[j].AddParagraph().AppendText(dt.Rows[i][j].ToString()); } } 获取指定书签位置 BookmarksNavigator navigator = BookmarksNavigator(doc); navigator.MovetoBookmark(将表格添加至TextbodyPart TextbodyPart part = navigator.GetBookmarkContent(); part.BodyItems.Add(table); 替换书签内容 navigator.ReplaceBookmarkContent(part); 保存并打开文件 doc.Savetofile(); } }}VIEw Code
【示例3】读取书签位置的内容
步骤 1 :添加using指令
using System;
步骤 2 :获取书签位置的内容
初始化BookmarkNavigator类对象BookmarksNavigator navigator = BookmarksNavigator(doc);定位到指定书签位置,获取书签位置的文档内容navigator.MovetoBookmark(bookmark1);TextbodyPart textbodyPart = navigator.GetBookmarkContent();
步骤 3 :读取书签内容
遍历书签内容中的子项目,并将文本信息提取至string类型变量中string text = null;foreach (var item in textbodyPart.BodyItems){ if (item is Paragraph) { var childobject in (item as Paragraph).Childobjects) { if (childobject TextRange) { text += (childobject TextRange).Text; } } }}控制台输出文本Console.Writeline(text);Console.Readline();
读取结果:
全部代码:
System; GetTextOfBookmark_Doc{ 实例化document类,加载测试文档 document doc = 初始化BookmarkNavigator类对象 BookmarksNavigator navigator = BookmarksNavigator(doc); 定位到指定书签位置,获取书签位置的文档内容 navigator.MovetoBookmark(); TextbodyPart textbodyPart = navigator.GetBookmarkContent(); 遍历书签内容中的子项目,并将文本信息提取至string类型变量中 ; textbodyPart.BodyItems) { Paragraph) { Paragraph).Childobjects) { TextRange) { text += (childobject TextRange).Text; } } } } Console.Writeline(text); Console.Readline(); } }}VIEw Code
【示例4】替换现有书签内容
步骤 1 :添加using指令
using Spire.Doc.FIElds;
步骤 2 :加载文档
document document = ");
步骤 3 :添加段落及文字
Section sec = document.AddSection();添加sectionsec.AddParagraph().AppendText(Welcome Back,\n My FrIEnd!"); 添加段落到section,并添加字符串内容
步骤 4 :获取段落
获取段落内容 ParagraphBase firstReplacementParagraph = sec.Paragraphs[0].Items.FirstItem ParagraphBase;ParagraphBase lastReplacementParagraph = sec.Paragraphs[sec.Paragraphs.Count - 1].Items.LastItem ParagraphBase;实例化类TextbodySelection和TextbodyPartTextbodySelection selection = TextbodySelection(firstReplacementParagraph,lastReplacementParagraph);TextbodyPart part = new TextbodyPart(selection);
步骤 5 :替换书签内容
BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);实例化BookmarksNavigator类 bookmarkNavigator.MovetoBookmark(true);定位到书签“bookmark1”所在段落的位置bookmarkNavigator.DeleteBookmarkContent(删除原有书签位置的内容bookmarkNavigator.ReplaceBookmarkContent(part,1)">用新添加段落的内容替换掉原书签的内容并保留格式document.Sections.Remove(sec); 移除section
步骤 6 :保存文档
保存文档并打开document.Savetofile(替换书签.docx);System.Diagnostics.Process.Start(");
替换效果:
全部代码:
Spire.Doc.FIElds; EditOrReplaceBookmark_Doc{ 创建document类实例,加载文档 document document = ); Section sec = document.AddSection();添加section sec.AddParagraph().AppendText(添加段落到section,并添加字符串内容 获取段落内容 ParagraphBase firstReplacementParagraph = sec.Paragraphs[ ParagraphBase; ParagraphBase lastReplacementParagraph = sec.Paragraphs[sec.Paragraphs.Count - ParagraphBase; 实例化类TextbodySelection和TextbodyPart TextbodySelection selection = TextbodyPart(selection); BookmarksNavigator bookmarkNavigator = 实例化BookmarksNavigator类 bookmarkNavigator.MovetoBookmark(定位到书签“bookmark1”所在段落的位置 bookmarkNavigator.DeleteBookmarkContent(删除原有书签位置的内容 bookmarkNavigator.ReplaceBookmarkContent(part,1)">用新添加段落的内容替换掉原书签的内容并保留格式 document.Sections.Remove(sec); 移除section 保存文档并打开 document.Savetofile(); System.Diagnostics.Process.Start(); } }}VIEw Code
以上是本次关于C# *** 作Word书签功能的补充介绍,如需转载,请注明出处。
(本文完)
总结
以上是内存溢出为你收集整理的C# *** 作Word书签(二)——插入图片、表格到书签;读取、替换书签全部内容,希望文章能够帮你解决C# *** 作Word书签(二)——插入图片、表格到书签;读取、替换书签所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)