C# 操作Word批量替换

本文介绍了一种使用VBScript脚本在Word文档中进行文本替换的方法,包括打开文档、替换指定文本以及关闭文档的过程。适用于批量处理Word文档中的文本修改任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Diagnostics;
 4 using System.Linq;
 5 using System.Text;
 6 
 7 namespace TextReplace
 8 {
 9     public class WordOperate : IDisposable
10     {
11         private Microsoft.Office.Interop.Word._Application _app;
12         private Microsoft.Office.Interop.Word._Document _doc;
13         object _nullobj = System.Reflection.Missing.Value;
14 
15         /// <summary>
16         /// 关闭Word进程
17         /// </summary>
18         public void KillWinword()
19         {
20             var p = Process.GetProcessesByName("WINWORD");
21             if (p.Any()) p[0].Kill();
22         }
23 
24         /// <summary>
25         /// 打开word文档
26         /// </summary>
27         /// <param name="filePath"></param>
28         public void Open(string filePath)
29         {
30 
31             _app = new Microsoft.Office.Interop.Word.ApplicationClass();
32             object file = filePath;
33             _doc = _app.Documents.Open(
34                  ref file, ref _nullobj, ref _nullobj,
35                  ref _nullobj, ref _nullobj, ref _nullobj,
36                  ref _nullobj, ref _nullobj, ref _nullobj,
37                  ref _nullobj, ref _nullobj, ref _nullobj,
38                  ref _nullobj, ref _nullobj, ref _nullobj, ref _nullobj);
39         }
40 
41 
42         /// <summary>
43         /// 替换word中的文字
44         /// </summary>
45         /// <param name="strOld">查找的文字</param>
46         /// <param name="strNew">替换的文字</param>
47         public void Replace(string strOld, string strNew)
48         {
49             _app.Selection.Find.ClearFormatting();
50             _app.Selection.Find.Replacement.ClearFormatting();
51             _app.Selection.Find.Text = strOld;
52             _app.Selection.Find.Replacement.Text = strNew;
53 
54             object objReplace = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;
55             _app.Selection.Find.Execute(ref _nullobj, ref _nullobj, ref _nullobj,
56                                        ref _nullobj, ref _nullobj, ref _nullobj,
57                                        ref _nullobj, ref _nullobj, ref _nullobj,
58                                        ref _nullobj, ref objReplace, ref _nullobj,
59                                        ref _nullobj, ref _nullobj, ref _nullobj);
60         }
61 
62         /// <summary>
63         /// 保存
64         /// </summary>
65         public void Save()
66         {
67             _doc.Save();
68         }
69 
70         /// <summary>
71         /// 退出
72         /// </summary>
73         public void Dispose()
74         {
75             _doc.Close(ref _nullobj, ref _nullobj, ref _nullobj);
76             _app.Quit(ref _nullobj, ref _nullobj, ref _nullobj);
77         }
78     }
79 }

 

转载于:https://www.cnblogs.com/existcQ/archive/2013/03/10/2952614.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值