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");
- }
- }
- }
【示例2】用图片替换Word中的文本
测试文档:
步骤1:加载文件
- //实例化Document类的对象,并加载测试文档
- Document doc = new Document();
- doc.LoadFromFile("testfile.docx");
- //加载替换的图片
- Image image = Image.FromFile("g.png");
步骤2:查找需要替换掉的文本字符串
- //获取第一个section
- Section sec= doc.Sections[];
- //查找文档中的指定文本内容
- TextSelection[] selections = doc.FindAllString("Google", true, true);
- int index = ;
- 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[];
- //查找文档中的指定文本内容
- TextSelection[] selections = doc.FindAllString("Google", true, true);
- int index = ;
- 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中的文本
测试文档:
步骤1:加载文档
- Document doc = new Document();
- doc.LoadFromFile("test.docx");
步骤2:查找关键字符串
- Section section = doc.Sections[];
- 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(, );
- range = table[, ].AddParagraph().AppendText("管号(McFarland)");
- range = table[, ].AddParagraph().AppendText("0.5");
- range = table[, ].AddParagraph().AppendText("");
- range = table[, ].AddParagraph().AppendText("0.25%BaCl2(ml)");
- range = table[, ].AddParagraph().AppendText("0.2");
- range = table[, ].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[];
- 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(, );
- range = table[, ].AddParagraph().AppendText("管号(McFarland)");
- range = table[, ].AddParagraph().AppendText("0.5");
- range = table[, ].AddParagraph().AppendText("");
- range = table[, ].AddParagraph().AppendText("0.25%BaCl2(ml)");
- range = table[, ].AddParagraph().AppendText("0.2");
- range = table[, ].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# 用文档、图片、表格替换Word中的文本字符串的”的全部内容。
(本文完)
C# 替换Word文本—— 用文档、图片、表格替换文本的更多相关文章
- PictureCleaner 官方版 v1.1.3.04061,免费的图片校正及漂白专业工具,专业去除文档图片黑底麻点杂色,规格化A4、B5尺寸输出,还你一个清晰的文本。
当家长多年,每天都要拍照试卷打印.用App去掉图片黑底就成了每天必备工作.可是,有些图片文件不是来自手机,所以需要一个电脑版的图片漂白工具.经过一个多月努力,PictureCleaner官方版诞生了 ...
- 基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理
http://www.cnblogs.com/wuhuacong/p/4175266.html 在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF.Word.Excel ...
- Aspose.Words操作word生成PDF文档
Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...
- 用R创建Word和PowerPoint文档--转载
https://www.jianshu.com/p/7df62865c3ed Rapp --简书 Microsoft的Office软件在办公软件领域占有绝对的主导地位,几乎每个职场人士都必须掌握Wor ...
- C# 调用word进程操作文档关闭进程
C# 调用word进程操作文档关闭进程 作者:Jesai 时间:2018-02-12 20:36:23 前言: office办公软件作为现在主流的一款办公软件,在我们的日常生活和日常工作里面几乎每天都 ...
- textContent、innerText的用法,在文档中插入纯文本
有时候需要查询纯文本形式的元素内容,或者在文档中插入纯文本.标准的方法是用Node的textContent属性来实现: var para = document.getElementsByTagName ...
- [翻译] DTCoreText 从HTML文档中创建富文本
DTCoreText 从HTML文档中创建富文本 https://github.com/Cocoanetics/DTCoreText 注意哦亲,DTRichTextEditor 这个组件是收费的,不贵 ...
- swagger2 导出离线Word/PDF/HTML文档
swagger2离线导出Word/PDF/HTML文档 1.前言 通过前面的两篇博客 我们已经介绍了如何使用spring boot整合swagger2 生成在线的API文档. 但是某些情况下,我们需要 ...
- python 解析docx文档的方法,以及利用Python从docx文档提取插入的文本对象和图片
首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以 下面来看下如何解析docx文档:文档格式如下 有3个部分组成 1 正文:text文档 2 一个表格. ...
随机推荐
- 14.Ubuntu基本命令
vi编辑器 { :上一段diamante } :下一段代码 dw: 删除一个单词 权限 前面的分三组 第一: 文件拥有者的权限 第二:同组者拥有的权限 第三:其他人拥有的权限 前面“-”表示是文件 ...
- Quartz学习--二 Hello Quartz! 和源码分析
Quartz学习--二 Hello Quartz! 和源码分析 三. Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...
- PAT1040:Longest Symmetric String
1040. Longest Symmetric String (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, ...
- activemq+Zookeper高可用集群方案配置
在高并发.对稳定性要求极高的系统中,高可用的是必不可少的,当然ActiveMQ也有自己的集群方案.从ActiveMQ 5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式 ...
- java序列化反序列化深入探究(转)
When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化.写一个排序算法也用不到序列化和反序列化.但是当你想要将一个对象进行持久化写入文件,或者你想 ...
- 记录几个经典的字符串hash算法
记录几个经典的字符串hash算法,方便以后查看: 推荐一篇文章: http://www.partow.net/programming/hashfunctions/# (1)暴雪字符串hash #inc ...
- 对try-catch-finally异常处理的最新理解
try{ ...... }catch(......){ }finally{ ...... } 这个结构是用来处理Java所有可能出现的异常的,这个我很早其实就已经学过,不过最近看了个视频,感觉自己虽然 ...
- java处理图片--图片的缩放,旋转和马赛克化
这是我自己结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化.(转载请注明出处:http://blog.csdn.net/u012116457) 不多说,上代码: packag ...
- Smokeping
Smokeping允许你监测多台服务器. Smokeping使用RRDtool来存储数据,另外,其可基于RRDtool输出生成相应的统计图表. Smokeping由两个部分组成.一个运行在后台.定期收 ...
- go语言nsq源码解读六 tcp.go、tcp_server.go
本篇讲nsqlookupd中tcp.go.tcp_server.go tcp_server.go位于util目录下. 12345678910111213141516171819202122232425 ...