Python无法编辑word文档
Python cannot edit word document
我的目标是替换现有 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.8[=12=]020905-0000-0000-C000-000000000046x0x8x7\Find.py", line 45, in Execute
return self._oleobj_.InvokeTypes(444, LCID, 1, (11, 0), ((16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (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 的右下角切换模式)。然后,我将 word 默认视图从阅读模式更改为 word 选项中的打印布局。脚本 运行 没有错误。
有关“如何使打印布局成为 Microsoft Word 中的默认视图布局?”的更多信息?
我的目标是替换现有 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.8[=12=]020905-0000-0000-C000-000000000046x0x8x7\Find.py", line 45, in Execute
return self._oleobj_.InvokeTypes(444, LCID, 1, (11, 0), ((16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (16396, 17), (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 的右下角切换模式)。然后,我将 word 默认视图从阅读模式更改为 word 选项中的打印布局。脚本 运行 没有错误。
有关“如何使打印布局成为 Microsoft Word 中的默认视图布局?”的更多信息?