【问题标题】:pywintypes.com_error opening Excel with Pythonpywintypes.com_error 用 Python 打开 Excel
【发布时间】:2016-11-07 17:49:17
【问题描述】:

我有以下从这里模仿的脚本(http://pythonexcels.com/python-excel-mini-cookbook/):

import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open('words.xlsx')

它返回以下错误(完整回溯)

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 wb = excel.Workbooks.Open('words.xlsx') 文件“C:directory\Python35\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x7\Workbooks.py”,第 78 行,打开 , 转换器, AddToMru, 本地, CorruptLoad) pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', "'words.xlsx' 找不到。检查文件名的拼写,并验证文件位置是否正确。 \n\n如果您尝试从最近使用的文件列表中打开该文件,请确保该文件未被重命名、移动或删除。", 'xlmain11.chm', 0, -2146827284), 无)

当我或者使用 openpyxl 的函数打开工作簿时,没有问题(引用此 https://automatetheboringstuff.com/chapter12/ )。 python文件和excel文件一起在同一个文件夹中。我是不是称呼不当?

我确定该文件拼写正确( words.xlsx )并且它与 python 文件位于同一文件夹中。

任何想法都将不胜感激。

【问题讨论】:

  • 你的文件和脚本在同一个目录和文件获得了'R-W'(读写)权限?
  • 是的,它确实具有读/写权限。如果它有任何价值,我在 Windows 7 机器上使用 Python 3.5。

标签: python excel


【解决方案1】:

试试这个:

import win32com.client as win32
import os
excel = win32.gencache.EnsureDispatch('Excel.Application')
path =  os.getcwd().replace('\'','\\') + '\\'
wb = excel.Workbooks.Open(path+'words.xlsx')

除了path 错误,而不是modulesystem 错误。

'xlmain11.chm' 是空的,所以不需要这个。

path-string 上使用转义字符时要小心。 脚本和工作文件在同一个目录下!

希望有帮助

【讨论】:

  • 这在我将 "getcwdu" 更改为 "getcwd" 后有效,我不确定这是 python 版本差异还是其他原因,但您的建议非常有效。谢谢!
  • 现在应该更正,有同样的问题,显然是错字
【解决方案2】:

你试过openpyxl吗,非常好用,读写excel文件不麻烦

from openpyxl import Workbook 

并初始化为

wb = Workbook()
ws = wb.active()

你可以马上开始阅读和写作

【讨论】:

  • 在我的帖子中,我声明我尝试使用 openpyxl,它可以正常工作(我同意你的观点!)但我无法像使用 win32com 那样系统地填写单元格。我将单元格称为 sheet[x,y] ,其中 x 是 int , y 是 int 而不必考虑实际的列名( A 、 B 、 C 等)。
  • 好的,抱歉。所以问题通过 win32.com 解决了,祝你的项目好运。
猜你喜欢
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
  • 2011-09-11
  • 2018-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多