前提・実現したいこと
google colaboratoryを使用しています。
Excelの自動化で下記内容に取り組んでいるのでいて、検索してできるところまではやってみましたが、違う結果が返ってくるため質問させてください。
■内容:wb1'リスト'のデータを2行目から10行ごと別シートに展開していきたいです。
展開するシート名は'Seet1','Seet2'...'Seet100'となっています。
また、リストのデータは2~11行目に格納されるようにしたいです。
例:'Seet1'には'リスト'の2~11行目が格納、'Seet2'には'リスト'の12~21行目が格納されます。
⇩イメージ画像になります
試したこと
import openpyxl wb = openpyxl.load_workbook('data.xlsx') ws1 = wb['リスト'] ws2 = wb['Sheet1'] idx = wb.index(ws2) for i in range(2,1002): if A == 11: idx = idx + 1 ws2 = wb.worksheets[idx] t1 = 'A' A = t1 + str(i) t2 = 'B' B = t2 + str(i) t3 = 'C' C = t3 + str(i) t4 = 'D' D = t4 + str(i) t5 = 'E' E = t5 + str(i) t6 = 'F' F = t6 + str(i) ws2.cell(i, 1).value = ws1[A].value ws2.cell(i, 2).value = ws1[B].value ws2.cell(i, 3).value = ws1[C].value ws2.cell(i, 4).value = ws1[D].value ws2.cell(i, 5).value = ws1[E].value ws2.cell(i, 6).value = ws1[F].value wb.save('teratail.xlsx')
上記が実際のコードです。
if文でAの値が11になったら次のシートに転記するように書いてみたのですが、11番目以降が反映されないのでif文がおかしいのに加え、下部の転記のコードも修正する必要があると思うのですがどう修正すればよいかわからず困っています。
わかりにくければ情報追加いたしますので、コメントいただければと思います。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー