C# 替換Word文字—— 用文件、圖片、表格替換文字
阿新 • • 發佈:2018-11-28
編輯文件時,對一些需要修改的字元或段落可以通過查詢替換的方式,快速地更改。在C# 在word中查詢及替換文字一文中,主要介紹了在Word中以文字替換文字的方法,在本篇文章中,將介紹如何用一篇Word文件、圖片或者表格來替換文件中的指定文字字串。示例要點如下:
1. 用文件替換Word中的文字
2. 用圖片替換Word中的文字
3. 用表格替換Word中的文字
工具
下載安裝後,注意在程式中新增引用Spire.Doc.dll(如下圖),dll檔案可在安裝路徑下的Bin資料夾中獲取。
C#程式碼示例
【示例1】用文件替換Word中的文字
測試文件:
步驟1:載入文件
//載入源文件 Document document = new Document("Original.docx"); //載入用於替換的文件 IDocument replaceDocument = new Document("test.docx");
步驟2:用文件替換文字
document.Replace("History", replaceDocument, false, true);
步驟3:儲存文件
document.SaveToFile("result.docx", FileFormat.Docx2013);
替換結果:
全部程式碼:
using Spire.Doc; using Spire.Doc.Interface; namespace ReplaceTextWithDocument_Doc { class Program { static void Main(string[] args) { //載入源文件 Document document = new Document("Original.docx"View Code); //載入用於替換的文件 IDocument replaceDocument = new Document("test.docx"); //用文件替換源文件中的指定文字 document.Replace("History", replaceDocument, false, true); //儲存文件 document.SaveToFile("result.docx", FileFormat.Docx2013); System.Diagnostics.Process.Start("result.docx"); } } }
【示例2】用圖片替換Word中的文字
測試文件:
步驟1:載入檔案
//例項化Document類的物件,並載入測試文件 Document doc = new Document(); doc.LoadFromFile("testfile.docx"); //載入替換的圖片 Image image = Image.FromFile("g.png");
步驟2:查詢需要替換掉的文字字串
//獲取第一個section Section sec= doc.Sections[0]; //查詢文件中的指定文字內容 TextSelection[] selections = doc.FindAllString("Google", true, true); int index = 0; TextRange range = null;
步驟3:用圖片替換文字
//遍歷文件,移除文字內容,插入圖片 foreach (TextSelection selection in selections) { DocPicture pic = new DocPicture(doc); pic.LoadImage(image); range = selection.GetAsOneRange(); index = range.OwnerParagraph.ChildObjects.IndexOf(range); range.OwnerParagraph.ChildObjects.Insert(index, pic); range.OwnerParagraph.ChildObjects.Remove(range); }
步驟4:儲存文件
doc.SaveToFile("result.docx", FileFormat.Docx);
替換結果:
全部程式碼:
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using System.Drawing; namespace ReplaceTextWithImg_Doc { class Program { static void Main(string[] args) { //例項化Document類的物件,並載入測試文件 Document doc = new Document(); doc.LoadFromFile("testfile.docx"); //載入替換的圖片 Image image = Image.FromFile("g.png"); //獲取第一個section Section sec= doc.Sections[0]; //查詢文件中的指定文字內容 TextSelection[] selections = doc.FindAllString("Google", true, true); int index = 0; TextRange range = null; //遍歷文件,移除文字內容,插入圖片 foreach (TextSelection selection in selections) { DocPicture pic = new DocPicture(doc); pic.LoadImage(image); range = selection.GetAsOneRange(); index = range.OwnerParagraph.ChildObjects.IndexOf(range); range.OwnerParagraph.ChildObjects.Insert(index, pic); range.OwnerParagraph.ChildObjects.Remove(range); } //儲存文件 doc.SaveToFile("result.docx", FileFormat.Docx); System.Diagnostics.Process.Start("result.docx"); } } }View Code
【示例3】用表格替換Word中的文字
測試文件:
步驟1:載入文件
Document doc = new Document(); doc.LoadFromFile("test.docx");
步驟2:查詢關鍵字串
Section section = doc.Sections[0]; TextSelection selection = doc.FindString("參考附錄", true, true);
步驟3:獲取關鍵字串所在段落
TextRange range = selection.GetAsOneRange(); Paragraph paragraph = range.OwnerParagraph; Body body = paragraph.OwnerTextBody; int index = body.ChildObjects.IndexOf(paragraph);
步驟4:新增表格
Table table = section.AddTable(true); table.ResetCells(2, 3); range = table[0, 0].AddParagraph().AppendText("管號(McFarland)"); range = table[0, 1].AddParagraph().AppendText("0.5"); range = table[0, 2].AddParagraph().AppendText("1"); range = table[1, 0].AddParagraph().AppendText("0.25%BaCl2(ml)"); range = table[1, 1].AddParagraph().AppendText("0.2"); range = table[1, 2].AddParagraph().AppendText("0.4");
步驟5:移除段落,插入表格
body.ChildObjects.Remove(paragraph);
body.ChildObjects.Insert(index, table);
步驟6:儲存文件
doc.SaveToFile("result.doc", FileFormat.Doc);
替換結果:
全部程式碼:
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; namespace ReplaceTextWithTable_Doc { class Program { static void Main(string[] args) { //例項化Document類的物件,並載入測試文件 Document doc = new Document(); doc.LoadFromFile("test.docx"); //查詢關鍵字串文字 Section section = doc.Sections[0]; TextSelection selection = doc.FindString("參考附錄", true, true); //獲取關鍵字串所在的段落 TextRange range = selection.GetAsOneRange(); Paragraph paragraph = range.OwnerParagraph; Body body = paragraph.OwnerTextBody; int index = body.ChildObjects.IndexOf(paragraph); //新增一個兩行三列的表格 Table table = section.AddTable(true); table.ResetCells(2, 3); range = table[0, 0].AddParagraph().AppendText("管號(McFarland)"); range = table[0, 1].AddParagraph().AppendText("0.5"); range = table[0, 2].AddParagraph().AppendText("1"); range = table[1, 0].AddParagraph().AppendText("0.25%BaCl2(ml)"); range = table[1, 1].AddParagraph().AppendText("0.2"); range = table[1, 2].AddParagraph().AppendText("0.4"); //移除段落,插入表格 body.ChildObjects.Remove(paragraph); body.ChildObjects.Insert(index, table); //儲存文件 doc.SaveToFile("result.doc", FileFormat.Doc); System.Diagnostics.Process.Start("result.doc"); } } }View Code
以上是本次關於“C# 用文件、圖片、表格替換Word中的文字字串的”的全部內容。
(本文完)