質問するログイン新規登録

回答編集履歴

3

コードの修正

2021/01/08 08:01

投稿

退会済みユーザー
answer CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
  # Excelシートで一列ごとに対応するリストへ格納
66
66
  # 部活で格納するリストを分ける
67
- for row in ws_active.iter_rows(min_row=5, values_only=True):
67
+ for row in active_sheet.iter_rows(min_row=5, values_only=True):
68
68
  if all(is_empty(c) for c in row):
69
69
  break
70
70
  if row[4] == "野球部":

2

修正

2021/01/08 08:01

投稿

退会済みユーザー
answer CHANGED
@@ -52,6 +52,7 @@
52
52
 
53
53
  ```
54
54
 
55
+ ##### 追記
55
56
  因みに`iter_rows()`の引数に`values_only=True`を設定すると、cellオブジェクトではなくセルの中の値を受け取るようになるので代入の部分を簡単に書くことができます。
56
57
  [iter_rows() | openpyxlドキュメント](https://openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.iter_rows)
57
58
 

1

追記

2021/01/08 07:59

投稿

退会済みユーザー
answer CHANGED
@@ -50,4 +50,26 @@
50
50
  print(tf_clb)
51
51
  print(pic_clb)
52
52
 
53
+ ```
54
+
55
+ 因みに`iter_rows()`の引数に`values_only=True`を設定すると、cellオブジェクトではなくセルの中の値を受け取るようになるので代入の部分を簡単に書くことができます。
56
+ [iter_rows() | openpyxlドキュメント](https://openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.iter_rows)
57
+
58
+ ```python
59
+ # 空行の定義
60
+ def is_empty(cell):
61
+ return cell is None or not str(cell).strip()
62
+
63
+
64
+ # Excelシートで一列ごとに対応するリストへ格納
65
+ # 部活で格納するリストを分ける
66
+ for row in ws_active.iter_rows(min_row=5, values_only=True):
67
+ if all(is_empty(c) for c in row):
68
+ break
69
+ if row[4] == "野球部":
70
+ bb_clb.extend(row)
71
+ elif row[4] == "陸上部":
72
+ tf_clb.extend(row)
73
+ elif row[4] == "写真クラブ":
74
+ pic_clb.extend(row)
53
75
  ```