Excel导入期间Python中的pywintypes.com_error

时间:2014-06-20 05:16:28

标签: python excel operating-system

运行我的模块gasprop时出现此错误。我不明白错误的含义以及解决方法:

import gasprop
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "gasprop.py", line 13, in <module>
sheet = wb.Sheets("Input1")
File "C:\Python27\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x6\Sheets.py", line 113, in __call__
ret = self._oleobj_.InvokeTypes(0, LCID, 2, (9, 0), ((12, 1),),Index
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147352565), None)

这是我的模块gasprop:

import win32com.client, os
xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
thisdir = os.getcwd()
wb = xl.Workbooks.Open(thisdir+"/Input1.xlsx")
sheet = wb.Sheets("Input1")

......

def megaverify(self):
    listtr,listp=[],[]
    for i in range(16):
        tr=float(sheet.Range("D"+str(5+i)).Value)
        p=float(sheet.Range("C"+str(5+i)).Value)
        listtr.append(tr);listp.append(p)

    return tr, p

2 个答案:

答案 0 :(得分:3)

您可以使用此teсhnique获取有关错误的更多信息:

import win32api
e_msg = win32api.FormatMessage(-2147352565)
print e_msg.decode('CP1251')

您收到的消息表示您的Excel文件没有名称为"Input1"的工作表。您只需重命名即可。

答案 1 :(得分:3)

发生错误是因为我想从excel工作簿调用的工作表与我在python代码中引用它的名称不匹配。我的工作表实际上是Sheet1(默认情况下是excel)但我正在调用工作表Input1,如我的模块gasprop的第5行所示。名称不匹配导致此错误。