在Python / Win32中打开文档时如何关闭MS Word显示的对话框

时间:2014-01-12 23:52:49

标签: python ms-office pywin32

我正在尝试编写一个脚本,该脚本会浏览文件夹中所有ms word文档的内容并收集一些信息。 我使用Python 2.7.3和Ms Office 2007 我遇到的问题是,打开文档时,有时MS Word会出现警告/错误弹出窗口。错误消息的示例是“Microsoft Visual Basic:Sub或Function not defined”。另一个错误是文档中的语法错误太多。 这些事件会暂停处理,直到您手动按下“确定”按钮。之后,脚本继续处理文档。 一个有趣的说明是,当我手动打开文档时,它不会产生“Sub或Function not defined”错误。

那么,有没有办法抑制这些错误/警告,以便脚本可以批处理模式处理文件?

以下是我用来打开word文件的代码:

import win32com.client
word = win32com.client.Dispatch("Word.Application")
word.Visible = False
...
doc = word.Documents.OpenNoRepairDialog(fname, False, True) # Popup window appears on this line

2 个答案:

答案 0 :(得分:0)

好的,我在MS KB中找到了答案。 它适用于VB,但由于pywin32只是API的一个环绕,因此同样适用于python代码。 以下是MS KB中文章的链接: http://support.microsoft.com/kb/259971

答案 1 :(得分:-1)

OpenNoRepairDialog方法似乎没有任何错误抑制选项,按照;

http://msdn.microsoft.com/en-us/library/office/ee426710(v=office.12).aspx

您可以在某处的Word偏好中禁用这些错误。

或者,尝试使用pywin32

http://www.galalaly.me/index.php/2011/09/use-python-to-parse-microsoft-word-documents-using-pywin32-library/

这些也可能是相关的;

Reading/Writing MS Word files in Python

https://github.com/mikemaccana/python-docx