编辑文档时, 对一些需要修改的字符或段落可以通过查找替换的方式, 快速地更改. 在本篇文章中, 将介绍如何用一篇 Word 文档, 图片或者表格来替换文档中的指定文本字符串. 示例要点如下:
用文档替换 Word 中的文本
用图片替换 Word 中的文本
用表格替换 Word 中的文本
工具
Free Spire.Doc for .NET
下载安装后, 注意在程序中添加引用 Spire.Doc.dll(如下图),dll 文件可在安装路径下的 Bin 文件夹中获取.
C# 代码示例
[示例 1] 用文档替换 Word 中的文本
测试文档:
- 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 中的文本
测试文档:
- 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 中的文本
测试文档:
- 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# 用文档, 图片, 表格替换 Word 中的文本字符串的" 的全部内容.
- (本文完)
来源: http://www.bubuko.com/infodetail-2864419.html