编辑文档时,对一些需要修改的字符或段落可以通过查找替换的方式,快速地更改。在C# 在word中查找及替换文本一文中,主要介绍了在Word中以文本替换文本的方法,在本篇文章中,将介绍如何用一篇Word文档、图片或者表格来替换文档中的指定文本字符串。示例要点如下:

1. 用文档替换Word中的文本

2. 用图片替换Word中的文本

3. 用表格替换Word中的文本

工具

下载安装后,注意在程序中添加引用Spire.Doc.dll(如下图),dll文件可在安装路径下的Bin文件夹中获取。

C#代码示例

【示例1】用文档替换Word中的文本

测试文档:

步骤1:加载文档

  1. //加载源文档
  2. Document document = new Document("Original.docx");
  3.  
  4. //加载用于替换的文档
  5. IDocument replaceDocument = new Document("test.docx");

步骤2:用文档替换文本

  1. document.Replace("History", replaceDocument, false, true);

步骤3:保存文档

  1. document.SaveToFile("result.docx", FileFormat.Docx2013);

替换结果:

全部代码:

  1. using Spire.Doc;
  2. using Spire.Doc.Interface;
  3.  
  4. namespace ReplaceTextWithDocument_Doc
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. //加载源文档
  11. Document document = new Document("Original.docx");
  12.  
  13. //加载用于替换的文档
  14. IDocument replaceDocument = new Document("test.docx");
  15.  
  16. //用文档替换源文档中的指定文本
  17. document.Replace("History", replaceDocument, false, true);
  18.  
  19. //保存文档
  20. document.SaveToFile("result.docx", FileFormat.Docx2013);
  21. System.Diagnostics.Process.Start("result.docx");
  22. }
  23. }
  24. }

【示例2】用图片替换Word中的文本

测试文档:

步骤1:加载文件

  1. //实例化Document类的对象,并加载测试文档
  2. Document doc = new Document();
  3. doc.LoadFromFile("testfile.docx");
  4. //加载替换的图片
  5. Image image = Image.FromFile("g.png");

步骤2:查找需要替换掉的文本字符串

  1. //获取第一个section
  2. Section sec= doc.Sections[];
  3.  
  4. //查找文档中的指定文本内容
  5. TextSelection[] selections = doc.FindAllString("Google", true, true);
  6. int index = ;
  7. TextRange range = null;

步骤3:用图片替换文本

  1. //遍历文档,移除文本内容,插入图片
  2. foreach (TextSelection selection in selections)
  3. {
  4. DocPicture pic = new DocPicture(doc);
  5. pic.LoadImage(image);
  6. range = selection.GetAsOneRange();
  7. index = range.OwnerParagraph.ChildObjects.IndexOf(range);
  8. range.OwnerParagraph.ChildObjects.Insert(index, pic);
  9. range.OwnerParagraph.ChildObjects.Remove(range);
  10. }

步骤4:保存文档

  1. doc.SaveToFile("result.docx", FileFormat.Docx);

替换结果:

全部代码:

  1. using Spire.Doc;
  2. using Spire.Doc.Documents;
  3. using Spire.Doc.Fields;
  4. using System.Drawing;
  5.  
  6. namespace ReplaceTextWithImg_Doc
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. //实例化Document类的对象,并加载测试文档
  13. Document doc = new Document();
  14. doc.LoadFromFile("testfile.docx");
  15. //加载替换的图片
  16. Image image = Image.FromFile("g.png");
  17.  
  18. //获取第一个section
  19. Section sec= doc.Sections[];
  20.  
  21. //查找文档中的指定文本内容
  22. TextSelection[] selections = doc.FindAllString("Google", true, true);
  23. int index = ;
  24. TextRange range = null;
  25.  
  26. //遍历文档,移除文本内容,插入图片
  27. foreach (TextSelection selection in selections)
  28. {
  29. DocPicture pic = new DocPicture(doc);
  30. pic.LoadImage(image);
  31. range = selection.GetAsOneRange();
  32. index = range.OwnerParagraph.ChildObjects.IndexOf(range);
  33. range.OwnerParagraph.ChildObjects.Insert(index, pic);
  34. range.OwnerParagraph.ChildObjects.Remove(range);
  35. }
  36.  
  37. //保存文档
  38. doc.SaveToFile("result.docx", FileFormat.Docx);
  39. System.Diagnostics.Process.Start("result.docx");
  40. }
  41. }
  42. }

【示例3】用表格替换Word中的文本

测试文档:

步骤1:加载文档

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

步骤2:查找关键字符串

  1. Section section = doc.Sections[];
  2. TextSelection selection = doc.FindString("参考附录", true, true);

步骤3:获取关键字符串所在段落的索引

  1. TextRange range = selection.GetAsOneRange();
  2. Paragraph paragraph = range.OwnerParagraph;
  3. Body body = paragraph.OwnerTextBody;
  4. int index = body.ChildObjects.IndexOf(paragraph);

步骤4:添加表格

  1. Table table = section.AddTable(true);
  2. table.ResetCells(, );
  3. range = table[, ].AddParagraph().AppendText("管号(McFarland)");
  4. range = table[, ].AddParagraph().AppendText("0.5");
  5. range = table[, ].AddParagraph().AppendText("");
  6. range = table[, ].AddParagraph().AppendText("0.25%BaCl2(ml)");
  7. range = table[, ].AddParagraph().AppendText("0.2");
  8. range = table[, ].AddParagraph().AppendText("0.4");

步骤5:移除段落,插入表格

  1. body.ChildObjects.Remove(paragraph);
  2. body.ChildObjects.Insert(index, table);

步骤6:保存文档

  1. doc.SaveToFile("result.doc", FileFormat.Doc);

替换结果:

全部代码:

  1. using Spire.Doc;
  2. using Spire.Doc.Documents;
  3. using Spire.Doc.Fields;
  4.  
  5. namespace ReplaceTextWithTable_Doc
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. //实例化Document类的对象,并加载测试文档
  12. Document doc = new Document();
  13. doc.LoadFromFile("test.docx");
  14.  
  15. //查找关键字符串文本
  16. Section section = doc.Sections[];
  17. TextSelection selection = doc.FindString("参考附录", true, true);
  18.  
  19. //获取关键字符串所在的段落
  20. TextRange range = selection.GetAsOneRange();
  21. Paragraph paragraph = range.OwnerParagraph;
  22. Body body = paragraph.OwnerTextBody;
  23. int index = body.ChildObjects.IndexOf(paragraph);
  24.  
  25. //添加一个两行三列的表格
  26. Table table = section.AddTable(true);
  27. table.ResetCells(, );
  28. range = table[, ].AddParagraph().AppendText("管号(McFarland)");
  29. range = table[, ].AddParagraph().AppendText("0.5");
  30. range = table[, ].AddParagraph().AppendText("");
  31. range = table[, ].AddParagraph().AppendText("0.25%BaCl2(ml)");
  32. range = table[, ].AddParagraph().AppendText("0.2");
  33. range = table[, ].AddParagraph().AppendText("0.4");
  34.  
  35. //移除段落,插入表格
  36. body.ChildObjects.Remove(paragraph);
  37. body.ChildObjects.Insert(index, table);
  38.  
  39. //保存文档
  40. doc.SaveToFile("result.doc", FileFormat.Doc);
  41. System.Diagnostics.Process.Start("result.doc");
  42.  
  43. }
  44. }
  45. }

以上是本次关于“C# 用文档、图片、表格替换Word中的文本字符串的”的全部内容。

(本文完)

C# 替换Word文本—— 用文档、图片、表格替换文本的更多相关文章

  1. PictureCleaner 官方版 v1.1.3.04061,免费的图片校正及漂白专业工具,专业去除文档图片黑底麻点杂色,规格化A4、B5尺寸输出,还你一个清晰的文本。

    当家长多年,每天都要拍照试卷打印.用App去掉图片黑底就成了每天必备工作.可是,有些图片文件不是来自手机,所以需要一个电脑版的图片漂白工具.经过一个多月努力,PictureCleaner官方版诞生了 ...

  2. 基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理

    http://www.cnblogs.com/wuhuacong/p/4175266.html 在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF.Word.Excel ...

  3. Aspose.Words操作word生成PDF文档

    Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...

  4. 用R创建Word和PowerPoint文档--转载

    https://www.jianshu.com/p/7df62865c3ed Rapp --简书 Microsoft的Office软件在办公软件领域占有绝对的主导地位,几乎每个职场人士都必须掌握Wor ...

  5. C# 调用word进程操作文档关闭进程

    C# 调用word进程操作文档关闭进程 作者:Jesai 时间:2018-02-12 20:36:23 前言: office办公软件作为现在主流的一款办公软件,在我们的日常生活和日常工作里面几乎每天都 ...

  6. textContent、innerText的用法,在文档中插入纯文本

    有时候需要查询纯文本形式的元素内容,或者在文档中插入纯文本.标准的方法是用Node的textContent属性来实现: var para = document.getElementsByTagName ...

  7. [翻译] DTCoreText 从HTML文档中创建富文本

    DTCoreText 从HTML文档中创建富文本 https://github.com/Cocoanetics/DTCoreText 注意哦亲,DTRichTextEditor 这个组件是收费的,不贵 ...

  8. swagger2 导出离线Word/PDF/HTML文档

    swagger2离线导出Word/PDF/HTML文档 1.前言 通过前面的两篇博客 我们已经介绍了如何使用spring boot整合swagger2 生成在线的API文档. 但是某些情况下,我们需要 ...

  9. python 解析docx文档的方法,以及利用Python从docx文档提取插入的文本对象和图片

    首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以 下面来看下如何解析docx文档:文档格式如下 有3个部分组成 1 正文:text文档 2 一个表格. ...

随机推荐

  1. 14.Ubuntu基本命令

    vi编辑器 {  :上一段diamante } :下一段代码 dw: 删除一个单词 权限 前面的分三组 第一: 文件拥有者的权限 第二:同组者拥有的权限 第三:其他人拥有的权限 前面“-”表示是文件 ...

  2. Quartz学习--二 Hello Quartz! 和源码分析

    Quartz学习--二  Hello Quartz! 和源码分析 三.  Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...

  3. PAT1040:Longest Symmetric String

    1040. Longest Symmetric String (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, ...

  4. activemq+Zookeper高可用集群方案配置

    在高并发.对稳定性要求极高的系统中,高可用的是必不可少的,当然ActiveMQ也有自己的集群方案.从ActiveMQ 5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式 ...

  5. java序列化反序列化深入探究(转)

    When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化.写一个排序算法也用不到序列化和反序列化.但是当你想要将一个对象进行持久化写入文件,或者你想 ...

  6. 记录几个经典的字符串hash算法

    记录几个经典的字符串hash算法,方便以后查看: 推荐一篇文章: http://www.partow.net/programming/hashfunctions/# (1)暴雪字符串hash #inc ...

  7. 对try-catch-finally异常处理的最新理解

    try{ ...... }catch(......){ }finally{ ...... } 这个结构是用来处理Java所有可能出现的异常的,这个我很早其实就已经学过,不过最近看了个视频,感觉自己虽然 ...

  8. java处理图片--图片的缩放,旋转和马赛克化

    这是我自己结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化.(转载请注明出处:http://blog.csdn.net/u012116457) 不多说,上代码: packag ...

  9. Smokeping

    Smokeping允许你监测多台服务器. Smokeping使用RRDtool来存储数据,另外,其可基于RRDtool输出生成相应的统计图表. Smokeping由两个部分组成.一个运行在后台.定期收 ...

  10. go语言nsq源码解读六 tcp.go、tcp_server.go

    本篇讲nsqlookupd中tcp.go.tcp_server.go tcp_server.go位于util目录下. 12345678910111213141516171819202122232425 ...