gpt4 book ai didi

python - 使用 Python 访问 MS Word 2010 时出现问题

转载 作者:行者123 更新时间:2023-11-30 23:34:17 25 4
gpt4 key购买 nike

我正在将 Python 与 Eclipse 结合使用。我需要使用 Python 访问 MS Word 文件。我已经看过一些关于此的示例,并且我已经安装了 pywin32。我尝试了一些示例,但出现了一些错误。

import win32com.client as win32

word = win32.Dispatch("Word.Application")
word.Visible = 0
word.Documents.Open("myfile.docx")
doc = word.ActiveDocument
print doc.Content.Text
word.Quit()

这是我收到的错误。如果有人能告诉我我在这里做错了什么,那就太好了。

Traceback (most recent call last):
File "C:\Users\dino\Desktop\Python27\Test\src\AccessWordDoc.py", line 10, in <module>
word = win32.Dispatch("Word.Application")
File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)

是否有另一种方法可以访问 MS Word 文件并提取其中的数据,而无需执行所有这些操作?

最佳答案

下面的代码对我有用,这只是将“Word.Application”简单更改为“Word.Application.8”:

import win32com.client as win32

word = win32.Dispatch("Word.Application.8")
word.Visible = 0
word.Documents.Open("myfile.docx")
doc = word.ActiveDocument
print doc.Content.Text
word.Quit()

我按照@Torxed 检查注册表的建议找到了这个解决方案。当我尝试 Word.Document.8 时,可用的方法集不包括 .Visible、.Quit 和 .Open,因此 @Torxed 的解决方案对我不起作用。 (现在很明显,Application 和 Word 对象具有不同的用途。) 相反,我还在注册表下找到了 Word.Application、Word.Application.8 和 Word.Application.14,并尝试了 Word.Application。 8 并按预期工作。

关于python - 使用 Python 访问 MS Word 2010 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18226090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com