在搜索多个文档时,如何使用python隐藏MS Word应用程序?

时间:2015-10-22 12:04:55

标签: python ms-word visible win32com

我正在开发一个需要从目录中的多个文件中提取信息的项目。它有效,除非它进入新文档,MS Word在页面上闪烁。我使用win32com.client并将.Visible设置为false,但我仍然可以获得程序打开的每个文件的闪存。

wordapp是一个全局变量

wordapp = win32.Dispatch('Word.Application')
wordapp.Visible = False

for files in os.listdir("."):
    if files.endswith(".docx") or files.endswith('.doc'):
            WordtxtExtract(files, 1);

...在WordtxtExtract中......

wordapp.Documents.Open(os.path.abspath(DataFile))

doc = wordapp.ActiveDocument

for TableCnt in range(1, doc.Tables.Count):
    DataFromTables(PrgDataCollection, doc, TableCnt)

1 个答案:

答案 0 :(得分:0)

在尝试使用我使用for循环将文本插入到Word Doc中的方法时,我遇到了类似的问题。似乎文件已经在单词中打开了,尽管当for循环在文件已经打开后再次遍历wordapp.Documents.Open时,wordapp本身不可见,但wordapp变得可见。在WordtxtExtract方法的 init 中使用以下内容。

    if self.wordApp.Documents.Count < 1:
        self.doc = self.wordApp.Documents.Open(self.path)
        print('opened doc')
    else:
        self.doc = self.wordApp.ActiveDocument
        print('Did not open doc')

至少对我的情况有用,而且与你的情况非常相似。我希望这有助于某人因为我的搜索,并将我的大脑绞尽脑汁解决这个问题。

注意:如果您打开另一个单词doc,它会将其作为活动文档。