使用Python退出Word文档时出现问题

时间:2011-06-08 12:52:12

标签: python excel ms-word ms-office

这是我第一次使用它,所以要善待:)基本上我的问题是我正在制作一个程序,打开许多Microsoft Word 2007文档并从该文档中的某个表读取并将该信息写入excel文件超过1000字的文档。我有所有这些工作,但唯一的问题,当我运行我的代码它没有关闭MSword后打开每个文档我必须在程序运行结束时通过打开单词并从主菜单中选择退出单词选项手动执行此操作。另一个问题是,如果在第二次运行中连续运行该程序,无论选择哪个文档,它都会重复打印相同的内容我认为这可能与MSword如何决定哪个文档是活动的有关。是否仍然打开上次运行时未关闭的最后一个活动文档。无论如何这里是我的开放和关闭部分的代码我不会让你们与其他人一起讨论::

MSWord = win32com.client.Dispatch("Word.Application")
MSWord.Visible = 0
# Open a specific file
#myWordDoc = tkFileDialog.askopenfilename()
MSWord.Documents.Open("C:\\Documents and Settings\\fdosier" + chosen_doc)
#Get the textual content
docText = MSWord.Documents[0].Content
charText = MSWord.Documents[0].Characters
# Get a list of tables
ListTables = MSWord.Documents[0].Tables

------Main Code---------

MSWord.Documents.Close
MSWord.Documents.Quit
del MSWord

3 个答案:

答案 0 :(得分:1)

在MSWord.Quit之前,您尝试使用:

MSWord.ActiveWindow.Close

或者更简单的做法

MSWord.Quit

如果您要关闭文档或应用程序,我真的不明白。

答案 1 :(得分:1)

基本上,Python不是VBA,所以:

MSWord.Documents.Close

相当于:

getattr(MSWord.Documents, "Close")

即。你只是获得了一些方法对象并且不做任何事情。您需要使用调用运算符(括号:)调用方法:

MSWord.Documents.Close()

相应的.Quit

答案 2 :(得分:0)

我认为你最后需要一个MSWord.Quit(和/或代替del)