2016-10-23 61 views
-2

我正在編寫一個代碼,它將數據輸入到網站的不同字段中,但前提是隻有在excel單元格中有數據。這是我的代碼:TypeError:'generator'對象在python中沒有屬性'__getitem__'

import openpyxl 
import pyautogui 
import pyperclip 
import time 
def copy(): 
    pyautogui.keyDown('ctrl') 
    pyautogui.press('c') 
    pyautogui.keyUp('ctrl') 
excelWorkbook = openpyxl.load_workbook('orderCodes.xlsx') 
sheet = excelWorkbook.get_sheet_by_name('Sheet1') 

for i in sheet.columns[1]: 
    info=sheet['A'+i].value 
    pyautogui.moveTo(305, 669, duration=0.25) 
    pyautogui.click() 
    pyautogui.typewrite(info) 
    pyautogui.moveTo(295, 702, duration=0.25) 
    pyautogui.click() 
    pyautogui.typewrite('100') 
    pyautogui.moveTo(217, 738, duration=0.25) 
    pyautogui.click() 
    time.sleep(1) 
    pyautogui.moveTo(1521, 515, duration=0.25) 
    pyautogui.dragTo(1531, 518, duration=0.25) 
    quantity=copy() 
    sheet['B'+i]=quantity 

,但我得到這個錯誤:爲什麼我得到這個

for i in sheet.columns[1]: 
TypeError: 'generator' object has no attribute '__getitem__' 

+3

您應該包含整個錯誤追溯。 –

+0

sheet.columns是一個生成器,不支持索引 - openpyxl文檔說什麼? – wwii

+0

也許可以使用[worksheet.iter_rows](http://openpyxl.readthedocs.io/en/default/api/openpyxl.worksheet.worksheet.html?highlight=sheet.columns#openpyxl.worksheet.worksheet.Worksheet.iter_rows)或'''Workseet ['A']'''應該返回第一列的行元組。 -http://openpyxl.readthedocs.io/en/2.4/tutorial.html#accessing-many-cells – wwii

回答

4

sheet.columns是一個發電機,你不能__getitem__它。 (使用[]獲取內容)嘗試

for i in sheet.columns: 
相關問題