编辑文档时,对一些需要修改的字符或段落可以通过查找替换的方式,快速地更改。在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文本—— 用文档、图片、表格替换文本的更多相关文章

  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. Maven学习(二)-- Maven项目构建过程练习

    摘自:http://www.cnblogs.com/xdp-gacl/p/4051690.html 一.创建Maven项目 1.1.建立Hello项目 1.首先建立Hello项目,同时建立Maven约 ...

  2. PAT1034;Head of a Gang

    1034. Head of a Gang (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue One wa ...

  3. 开源RPC(gRPC/Thrift)框架性能评测

    海量互联网业务系统只能依赖分布式架构来解决,而分布式开发的基石则是RPC:本文主要针对两个开源的RPC框架(gRPC. Apache Thrift),以及配合GoLang.C++两个开发语言进行性能对 ...

  4. Using INSERT IGNORE with MySQL to prevent duplicate key errors

    An error will occur when inserting a new record in MySQL if the primary key specified in the insert ...

  5. ELK 架构之 Logstash 和 Filebeat 配置使用(采集过滤)

    相关文章: ELK 架构之 Elasticsearch 和 Kibana 安装配置 ELK 架构之 Logstash 和 Filebeat 安装配置 ELK 使用步骤:Spring Boot 日志输出 ...

  6. Python中使用MongoEngine3

    最近重新拾起Django,但是Django并不支持mongodb,但是有一个模块mongoengine可以实现Django Model类似的封装.但是mongoengine的中文文档几乎没有,有的也是 ...

  7. 从一个例子了解window.onload、$(function(){})、$(window).load(function(){})的加载顺序

    最近遇到一个轮播需求: 1. ajax请求服务器,返回json,判断json数据里每一项中isFix属性是0还是1,0表示不轮播,1表示需要轮播. 2. 当isFix属性为0的时候,表示该图片不轮播, ...

  8. MFC中ComboBox控件用法

    MFC ComboBox 一.入门篇 ComboBox (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项 ...

  9. 获得指定数据库中指定块表中所有实体的id

    该函数也使用外部指定图纸中的数据库中的块 Int getIdsByDwgBlkName(AcDbDatabase *pDwg, CString strBlkName, AcDbObjectIdArra ...

  10. 【BZOJ 3626】 [LNOI2014]LCA【在线+主席树+树剖】

    题目链接: TP 题解:   可能是我比较纱布,看不懂题解,只好自己想了…… 先附一个离线版本题解[Ivan] 我们考虑对于询问区间是可以差分的,然而这并没有什么卵用,然后考虑怎么统计答案. 首先LC ...