pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146827284), None)
<COMObject Excel.Application>
Traceback (most recent call last):
File "E:\Bing_Pythons\small_utils\VoLte_PRI\qxdm_scr2xlsm.py", line 259, in <module>
main()
File "E:\Bing_Pythons\small_utils\VoLte_PRI\qxdm_scr2xlsm.py", line 253, in main
xlsm_efs = get_xlsm_efslist(myExcel,checklist=pc_efslist)
File "E:\Bing_Pythons\small_utils\VoLte_PRI\qxdm_scr2xlsm.py", line 185, in get_xlsm_efslist
value = myExcel.getCell('EFS', i, 1)
File "E:\Bing_Pythons\small_utils\VoLte_PRI\qxdm_scr2xlsm.py", line 40, in getCell
return sht.Cells(row, col).Value
File "C:\Python27_32\lib\site-packages\pypiwin32-219-py2.7-win32.egg\win32com\client\dynamic.py", line 192, in __call__
return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146827284), None)
====================================================
def get_xlsm_efslist(myExcel, checklist=None):
i = 0
xlsm_efslist = []
while True:
value = myExcel.getCell('EFS', i, 1)
if value is not None:
print value
xlsm_efslist.append(value)
if checklist is not None and value not in checklist:
myExcel.colorCellformat('EFS', i, 1, 6) #yellow fill backgroud
else:
banklinenum = i
# print 'BankLineNum:%d' %i
break
i += 1
return xlsm_efslist
原因
myExcel.colorCellformat('EFS', i, 1, 6)
win32com.client 操作excel的时候,cell
index 要从1 开始,而不能是0.
解决办法
def get_xlsm_efslist(myExcel, checklist=None):
i = 0 ---> i ==1
........
myExcel.colorCellformat('EFS', i, 1, 6)