学習めも。

Python、Anaconda学習中🔰 ブログ引っ越ししました😄よろしくお願いします!https://noeiganolife.com/

記録用🔰

プログラミング以外の記事はこちら

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)

確認

f:id:Moriane:20220115121413p:plain