加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

我可以使用Win32 COM替换word文档中的文本吗?

发布时间:2020-12-14 02:15:14 所属栏目:Windows 来源:网络整理
导读:我必须在一些文档中执行大量替换,事情是,我希望能够自动执行该任务.一些文档包含公共字符串,如果它可以自动化,这将非常有用.从我到目前为止所读到的,COM可能是这样做的一种方式,但我不知道是否支持文本替换. 我希望能够在 python中执行此任务?可能吗?你可
我必须在一些文档中执行大量替换,事情是,我希望能够自动执行该任务.一些文档包含公共字符串,如果它可以自动化,这将非常有用.从我到目前为止所读到的,COM可能是这样做的一种方式,但我不知道是否支持文本替换.
我希望能够在 python中执行此任务?可能吗?你可以发一个代码片段来展示如何访问文档的文本吗?

谢谢!

解决方法

看看 this是否为您提供了使用python进行文字自动化的开始.

打开文档后,您可以执行以下操作.
在以下代码之后,您可以关闭文档&打开另一个.

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "test"
    .Replacement.Text = "test2"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchKashida = False
    .MatchDiacritics = False
    .MatchAlefHamza = False
    .MatchControl = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

上面的代码将文本“test”替换为“test2”并执行“replace all”.
您可以根据需要将其他选项设置为true / false.

学习这个的简单方法是创建一个宏,其中包含您想要执行的操作,请参阅生成的代码和在你自己的例子中使用它(有/没有修改参数).

编辑:在看了Matthew的一些代码之后,你可以做以下几点

MSWord.Documents.Open(filename)
Selection = MSWord.Selection

然后将上面的VB代码翻译成Python.
注意:以下VB代码是在不使用长语法的情况下分配属性的简便方法.

(VB)

With Selection.Find
    .Text = "test"
    .Replacement.Text = "test2"
End With

Python

find = Selection.Find
find.Text = "test"
find.Replacement.Text = "test2"

请原谅我的python知识.但是,我希望你能够继续前进.
记得做一个Save&完成查找/替换操作后,关闭文档.

最后,您可以调用MSWord.Quit(从内存中释放Word对象).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读