C# 操作Word ,替换文档中指定文字

Annie321gao 2015-02-11 02:08:03
参考网上资源,写了一小段程序,用来替换指定文件夹下若干个word文档中的指定字段,程序运行没什么错误,但是当一个文档超过两页之后,此文档中的文字就不会被替换掉,而一页的文档中的会成功替换掉。检查了好长时间也不知道是什么问题,请教各位高手,帮帮我。。。

private void WordReplace(string filePath, string strOld, string strNew)
{

Microsoft.Office.Interop.Word._Application app = new Microsoft.Office.Interop.Word.ApplicationClass();//new Microsoft.Office.Interop.Word.ApplicationClass();

object nullobj = Type.Missing;

object file = filePath;

Microsoft.Office.Interop.Word._Document doc = app.Documents.Open(
ref file, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj, ref nullobj) as Microsoft.Office.Interop.Word._Document;

app.Selection.Find.ClearFormatting();
app.Selection.Find.Replacement.ClearFormatting();
app.Selection.Find.Text = strOld;
app.Selection.Find.Replacement.Text = strNew;

object objReplace = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;

app.Selection.Find.Execute(ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref objReplace, ref nullobj,
ref nullobj, ref nullobj, ref nullobj);


//清空Range对象
//Microsoft.Office.Interop.Word.Range range = null;

//保存
doc.Save();
doc.Close(ref nullobj, ref nullobj, ref nullobj);
app.Quit(ref nullobj, ref nullobj, ref nullobj);
}
...全文
929 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gis_99 2015-02-12
  • 打赏
  • 举报
回复
早上有时间,就根据你的代码进行测试。 vs2010 office2010 word文档有4页,替换了一个四页都有的字符串,测试通过。
gis_99 2015-02-12
  • 打赏
  • 举报
回复
打开的word文档,要不就是需要逐页查找替换,要不就是替换的时候是当前页还是全文替换。

110,531

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧