【教程】Spire.Doc系列教程(7):C# 用图片、表格替换Word文本

Spire.Doc支持查找替换Word中的文本、图片等。前文介绍了如何用文档、文本替换Word文本,本篇文章将介绍用图片、表格替换Word文本的方法。

用图片替换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);

替换结果:

     用图片替换文本结果

用表格替换Word文本

      测试文档2

代码如下:

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

替换结果:

     用表格替换文本结果

                                                               【下载Spire.Doc最新试用版

猜你喜欢

转载自blog.csdn.net/weixin_43746001/article/details/87913900