日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 操作Word书签(二)——插入图片、表格到书签;读取、替换书签

發布時間:2025/3/20 C# 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 操作Word书签(二)——插入图片、表格到书签;读取、替换书签 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概要

書簽的設置可以幫助我們快速的定位某段文字,使用起來很方便,也很節省時間。在前一篇文章“C# 如何添加/刪除Word書簽”中介紹了插入、刪除書簽的方法,本篇文章將對C# 操作Word書簽的功能做進一步介紹。示例內容將包含以下要點:

  • 在現有書簽位置插入圖片
  • 在現有書簽位置插入表格
  • 讀取書簽位置的文檔內容
  • 替換現有書簽位置內容

?

使用工具

  • Spire.Doc for .NET 6.1
  • Visual Studio

ps:下載安裝該類庫后,注意添加引用Spire.Doc.dl到項目程序,dll文件可在安裝路徑的Bin文件夾中獲取。

示例代碼(供參考)

測試文檔如下:

?

?

【示例1】 在現有書簽位置插入圖片

步驟 1: 添加using指令

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

步驟 2 :主要代碼段

//創建實例,加載文檔 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);

圖片插入效果:

?

全部代碼:

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

?

?【示例 2】在現有書簽位置插入表格

步驟 1:添加using指令

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

步驟 2 :創建文檔,加載文件

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

步驟 3 :創建表格

//創建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());} }

步驟 4 :插入表格到書簽位置

//獲取指定書簽位置 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");

?

?表格插入效果:

全部代碼:

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");//將表格添加至TextBodyPartTextBodyPart part = navigator.GetBookmarkContent();part.BodyItems.Add(table);//替換書簽內容 navigator.ReplaceBookmarkContent(part);//保存并打開文件doc.SaveToFile("output.docx", FileFormat.Docx2013);System.Diagnostics.Process.Start("output.docx");}} } View Code

?

【示例3】讀取書簽位置的內容

步驟 1 :添加using指令

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

步驟 2 :獲取書簽位置的內容

//初始化BookmarkNavigator類對象 BookmarksNavigator navigator = new BookmarksNavigator(doc); //定位到指定書簽位置,獲取書簽位置的文檔內容 navigator.MoveToBookmark("bookmark1"); TextBodyPart textBodyPart = navigator.GetBookmarkContent();

步驟 3 :讀取書簽內容

//遍歷書簽內容中的子項目,并將文本信息提取至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();

?

?讀取結果:

全部代碼:

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

?

【示例4】替換現有書簽內容

步驟 1 :添加using指令

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

步驟 2 :加載文檔

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

步驟 6 :保存文檔

//保存文檔并打開 document.SaveToFile("替換書簽.docx"); System.Diagnostics.Process.Start("替換書簽.docx");

?

替換效果:

全部代碼:

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();//添加sectionsec.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和TextBodyPartTextBodySelection 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書簽功能的補充介紹,如需轉載,請注明出處。

(本文完)

?

總結

以上是生活随笔為你收集整理的C# 操作Word书签(二)——插入图片、表格到书签;读取、替换书签的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品8 | 久久的色偷偷 | 久久久18禁一区二区三区精品 | 亚洲AV不卡无码一区二区三区 | 天天想你免费观看完整版高清电影 | av成人在线网站 | 亚洲成a人v欧美综合天堂麻豆 | 美女流白浆视频 | 亚洲精品国产成人久久av盗摄 | 美女扒开腿让男人捅 | 中文字幕人妻一区二区三区 | 99视频久久| 免费看欧美大片 | 五月天在线观看 | 欧美色999 | 91在线播| 91精品一区二区三区在线观看 | 日本中出视频 | xxx毛片 | 亚洲v国产v欧美v久久久久久 | 丁香花电影免费播放电影 | 欲涩漫入口免费网站 | 色综合激情 | 亚洲伊人成人网 | 国产99在线播放 | 欧美激情视频一区二区三区不卡 | 中文字幕mv| 四川黄色一级片 | 久草福利在线 | 中文字幕在线播放日韩 | 尹人综合在线 | 成人av免费| 在线少妇| 天天操天天操天天操 | 国产情侣久久 | 人妻无码久久一区二区三区免费 | 天堂在线资源库 | 免费黄在线看 | 视频在线国产 | 日本做爰三级床戏 | 日日夜精品 | 国产免费不卡av | 久久精品牌麻豆国产大山 | 亚洲毛片一级 | 国产suv精品一区二区6 | 日本三级aaa| 女生扒开尿口让男生桶 | 欧美偷拍精品 | 日本激情视频一区二区三区 | 精品婷婷色一区二区三区蜜桃 | 欧美色就是色 | 久久xxxx| 国产高清视频在线 | 在线中文字幕亚洲 | 有码一区 | 免费看欧美黑人毛片 | 日韩一区二区三区精品视频 | 国产高清免费 | 不卡影院一区二区 | 毛片你懂的 | 国产日批视频在线观看 | 日本三级大全 | 国产电影一区二区三区 | 影音先锋久久 | 直接看的毛片 | 射进来av影视网 | 国产精品一级无码 | 亚洲精品999 | 国产精品传媒麻豆hd | 天天躁日日躁狠狠躁av | 欧美一区二区三区爽爽爽 | 国产伦人伦偷精品视频 | 欧洲性生活片 | 在线观看免费 | 久草视频国产 | 一区二区在线视频免费观看 | 亚洲理论中文字幕 | 少妇人妻偷人精品无码视频新浪 | 九色蝌蚪porny | 亚洲AV无码成人精品区东京热 | 亚洲欧美日韩久久 | 国产一级大片在线观看 | 欧美视频在线播放 | 免费av在线网 | 人人爱人人看 | 亚洲网在线 | 欧美做爰xxxⅹ性欧美大片 | 日韩成人在线视频观看 | 在线观看免费黄网站 | 日韩欧美资源 | 毛片看看 | 日本亲子乱子伦xxxx | 天天燥日日燥 | 免费一级特黄特色毛片久久看 | 国产伦视频 | 日韩国产免费 | 色窝窝无码一区二区三区 | 国产三级精品三级在线 | 美女扒开尿口给男人捅 |