前提・実現したいこと
現在、openpyxlを使用してエクセルファイルのシートを取得しようとしています。
worksheetsの名称が1月、2月、3月・・・と各月の名称になっています。
そこでdatetimeを使用して今月のsheetsと来月のsheetsを取得しようとしているのですが
エラーが出力してしまい上手くいきません。
よろしければご教示お願い致します。
発生している問題・エラーメッセージ
ws = wb.worksheets[str(kongetu)] TypeError: list indices must be integers or slices, not str
該当のソースコード
python
1import datetime 2from dateutil.relativedelta import relativedelta 3import openpyxl 4import locale 5 6locale.setlocale(locale.LC_CTYPE, "Japanese_Japan.932") 7 8now = datetime.date.today() 9month = now.month 10raigetu = now + relativedelta(months=1) 11month1 = raigetu.month 12print(month) #確認用 13print(month1) #確認用 14 15kongetu = str(month) + "月" 16tugi = str(month1) + "月" 17print(kongetu) #確認用 18print(tugi) #確認用 19wb = openpyxl.load_workbook(r'C:カレンダー.xlsm') 20ws = wb.worksheets[str(kongetu)] 21ws2 = wb.worksheets[str(tugi)]
試したこと
kongetuとtugiの変数には現在であれば、ちゃんと4月と5月がprintされるので
wokrksheetsの指定の仕方だけが問題だと思うのですが・・・
ws = wb.worksheets[str(kongetu)]
ws2 = wb.worksheets[str(tugi)]
上記の箇所をint型にしたり何も付けなかったり試しましたが
エラーは解消されませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/10 05:52