-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__'
私はこれを得るのはなぜ?
エラートレースバック全体を含める必要があります。 –
sheet.columnsはジェネレータであり、インデックス作成をサポートしていません。つまり、openpyxlのドキュメントは何を表していますか? – wwii
代わりに[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