前提・実現したいこと
pythonの勉強中です。以下のサイトを使って勉強しているのですが、for文で理解できないところがあります。
https://fastclassinfo.com/entry/python_excel_tenki/#5
「プログラム4|シート1のデータをリスト化」のところでfor文を使っているのですが、なぜこの構文でexcelのデータを全取得できているのかがわかりません。
配列に入れる値を取得していることは何となくわかるのですが、なぜこの文で順番に配列に入れることができているのでしょうか?
初心者で申し訳ないのですが、pythonをきちんと理解したいので、ご教授のほどよろしくお願いします。
該当のソースコード
html
1#プログラム1|ライブラリの設定 2from openpyxl import load_workbook 3from datetime import datetime 4 5#プログラム2|対象エクセルのファイルパスを指定(ここでは「sample.xlsx」) 6filepath = 'sample.xlsx' 7 8#プログラム3|「sample.xlsx」を開いて指定して読み込む 9wb = load_workbook(filename=filepath) 10ws1 = wb['Sheet1'] 11ws2 = wb['template'] 12 13#プログラム4|シート1のデータをリスト化 14values1=[[cell.value for cell in row1] for row1 in ws1] 15 16#プログラム5|取引先のリストを作成 17del values1[0] 18conv_values1 = list(zip(*values1)) 19torihiki_list = list(set(conv_values1[0])) 20 21#プログラム6|取引先ごとに処理 22for torihiki in torihiki_list: 23 24 # プログラム7|空リストを作成 25 product_data =[] 26 27 # プログラム8|取引先とマッチングする行をproduct_dataのリストに格納 28 for i in range(len(values1)): 29 if values1[i][0] == torihiki: 30 product_data.append(values1[i]) 31 32 # プログラム9|templateシートをコピー 33 ws3 = wb.copy_worksheet(ws2) 34 ws3.title = torihiki 35 36 # プログラム10|プログラム8で格納したリストをエクセルへ出力 37 for y, row in enumerate(product_data): 38 for x, cell in enumerate(row): 39 ws3.cell(row= y+2, column= x+1, value=product_data[y][x]) 40 41 42# プログラム11|エクセルファイルの保存 43now = datetime.now() 44hiduke = now.strftime('%Y-%m-%d') 45filename = hiduke + '_' + 'Excel.xlsx' 46wb.save(filename)
試したこと
ここに問題に対して試したことを記載してください。
macOS Big Sur 11.2.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。