1. 程式人生 > >C# 替換Word文字—— 用文件、圖片、表格替換文字

C# 替換Word文字—— 用文件、圖片、表格替換文字

編輯文件時,對一些需要修改的字元或段落可以通過查詢替換的方式,快速地更改。在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"
); //載入用於替換的文件 IDocument replaceDocument = new Document("test.docx"); //用文件替換源文件中的指定文字 document.Replace("History", replaceDocument, false, true); //儲存文件 document.SaveToFile("result.docx", FileFormat.Docx2013); System.Diagnostics.Process.Start("result.docx"); } } }
View Code

 

 

【示例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中的文字字串的”的全部內容。

(本文完)