C# 替换Word文本—— 用文档、图片、表格替换文本
2021-06-28 22:10
                         标签:names   set   .com   view   get   ons   rgs   inter   documents    编辑文档时,对一些需要修改的字符或段落可以通过查找替换的方式,快速地更改。在C# 在word中查找及替换文本一文中,主要介绍了在Word中以文本替换文本的方法,在本篇文章中,将介绍如何用一篇Word文档、图片或者表格来替换文档中的指定文本字符串。示例要点如下: 1. 用文档替换Word中的文本 2. 用图片替换Word中的文本 3. 用表格替换Word中的文本   下载安装后,注意在程序中添加引用Spire.Doc.dll(如下图),dll文件可在安装路径下的Bin文件夹中获取。 测试文档: 步骤1:加载文档 步骤2:用文档替换文本 步骤3:保存文档 替换结果:   全部代码:     测试文档: 步骤1:加载文件 步骤2:查找需要替换掉的文本字符串 步骤3:用图片替换文本 步骤4:保存文档 替换结果: 全部代码:   测试文档:   步骤1:加载文档 步骤2:查找关键字符串 步骤3:获取关键字符串所在段落 步骤4:添加表格 步骤5:移除段落,插入表格 步骤6:保存文档 替换结果: 全部代码:   以上是本次关于“C# 用文档、图片、表格替换Word中的文本字符串的”的全部内容。 (本文完) C# 替换Word文本—— 用文档、图片、表格替换文本 标签:names   set   .com   view   get   ons   rgs   inter   documents    原文地址:https://www.cnblogs.com/Yesi/p/10031817.html工具

C#代码示例
【示例1】用文档替换Word中的文本

//加载源文档
Document document = new Document("Original.docx");
//加载用于替换的文档
IDocument replaceDocument = new Document("test.docx");
document.Replace("History", replaceDocument, false, true);
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");
        }
    }
}
【示例2】用图片替换Word中的文本

//实例化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);



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");
        }
    }
}
【示例3】用表格替换Word中的文本

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



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");
             
        }
    }
}
上一篇:C#正则表达式
文章标题:C# 替换Word文本—— 用文档、图片、表格替换文本
文章链接:http://soscw.com/index.php/essay/99089.html