如何解决Python无法编辑word文档
我的目标是替换现有单词 docx 中的一些文本。但是,我在使用 ReplaceAll 功能时遇到了错误。你能帮忙解释一下这个问题吗?谢谢!
我的代码:
import win32com.client
constants=win32com.client.constants
wordapp=win32com.client.gencache.EnsureDispatch('Word.Application')
worddoc=wordapp.Documents.Open(templatefile)
wordapp.Visible=False
wordapp.Selection.Find.ClearFormatting
wordapp.Selection.Find.Replacement.ClearFormatting
worddoc.Range(0,0).Select()
selection = wordapp.Selection
selection.Find.ClearFormatting()
selection.Find.Replacement.ClearFormatting()
selection.Find.Forward=True
for dummy in myDict.keys():
selection.Find.Text = dummy
selection.Find.Replacement.Text = myDict[dummy]
selection.Find.Execute(Replace=constants.wdReplaceAll)
worddoc.SaveAs(savefile)
worddoc.Close()
wordapp.Application.Quit()
错误信息:
Traceback (most recent call last):
File "short_py3_1.py",line 75,in <module>
selection.Find.Execute(Replace=constants.wdReplaceAll)
File "C:\Temp\gen_py\3.8\00020905-0000-0000-C000-000000000046x0x8x7\Find.py",line 45,in Execute
return self._oleobj_.InvokeTypes(444,LCID,1,(11,0),((16396,17),(16396,17)),FindText
pywintypes.com_error: (-2147352567,'Exception occurred.',(0,'Microsoft Word','This command is not available.','wdmain11.chm',37373,-2146823683),None)
我的 conda 包:
ca-certificates 2021.1.19 h9f7ea03_0
certifi 2020.12.5 py38h9f7ea03_0
openssl 1.1.1i hc431981_0
pip 20.3.3 py38h9f7ea03_0
pysimplegui 4.34.0 pypi_0 pypi
python 3.8.5 h5fd99cc_1
pywin32 227 py38he774522_1
setuptools 51.3.3 py38h9f7ea03_4
sqlite 3.33.0 h2a8f88b_0
vc 14.2 h21ff451_1
vs2015_runtime 14.27.29016 h5e58377_2
wheel 0.36.2 pyhd3eb1b0_0
wincertstore 0.2 py38_0
zlib 1.2.11 h33f27b4_4
解决方法
抱歉,我只是想通了。问题是当打开word 2019时,程序的默认视图为“阅读”模式(防止用户修改文档。您可以在word的右下角切换模式)。然后我将单词默认视图从阅读模式更改为单词选项中的打印布局。脚本运行没有错误。
有关“如何使打印布局成为 Microsoft Word 中的默认视图布局?”的更多信息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。