Excelファイルの転記・集計をPythonで行う
顧客マスタをPythonに取り込む
import openpyxl wb = openpyxl.load_workbook("顧客マスタ.xlsx") ws = wb["Sheet1"] #顧客マスタの全データリスト customer_list = [] # 顧客マスタの全行を1行ずつ読み込む for row in ws.iter_rows(min_row=2): # 顧客IDのセルが空になったら終了 if row[0].value is None: break #1行分のセルの値 value_list = [] for c in row: value_list.append(c.value) #1件分の顧客データを追加 customer_list.append(value_list) #確認 for customer in customer_list: print(customer)
(ポイント)
・ヘッダーは1行だけで、データは2行目から始まっているのでiter_rows()の括弧のなかは「min_row=2」を指定する
・1行(1件)分のセルをリストvalue_listに格納したら、このリストをcustomer_listに追加。この作業を全行分繰り返す
・末尾の空行を読み込まないようにするため、1列目の「顧客ID」のセルの値(row[0].value)がNoneの場合は、breakで読み込みのループを終了する
マークのある顧客を読み飛ばす方法
何らかの理由で処理から除外したい顧客には、次のように「除外」列にマークを入力しておく
※マークは * や # などなんでも良い
import openpyxl wb = openpyxl.load_workbook("顧客マスタ_除外あり.xlsx") ws = wb["Sheet1"] #顧客マスタの全データリスト customer_list = [] # 顧客マスタの全行を1行ずつ読み込む for row in ws.iter_rows(min_row=2): # 顧客IDのセルが空になったら終了 if row[0].value is None: break #除外の列に何か入力されている場合は読み飛ばす if row[6].value is not None: continue value_list = [] for c in row: value_list.append(c.value) customer_list.append(value_list) #確認 for customer in customer_list: print(customer)
結果 import openpyxl
wb = openpyxl.load_workbook("顧客マスタ_除外あり.xlsx") ws = wb["Sheet1"]
顧客マスタの全データリスト
customer_list =
顧客マスタの全行を1行ずつ読み込む
for row in ws.iter_rows(min_row=2): # 顧客IDのセルが空になったら終了 if row[0].value is None: break #除外の列に何か入力されている場合は読み飛ばす if row[6].value is not None: continue value_list = for c in row: value_list.append(c.value) customer_list.append(value_list)
確認