前提・実現したいこと
pythonでExcel作業の自動化に取り組んでいます。
主にコピペ作業をさせたいです。
指定したセル行コピーをリストに格納することはできました。
しかしそれを張り付ける際に元のセル行の様にではなく、一つのセルにまとめて張り付けられてしまいます。
enumerate関数のところでつまずいていると思われますが、内容の理解不足もあり、どこが間違っていてこの出力結果になるのか分からないため質問させていただきます。
有識者の方、どうかお力添えください。
該当のソースコード
python
1import os 2import openpyxl as px 3import re 4 5print("< Sheet1 に入っているセルの文字列 >") 6print("") 7 8file_name = r"C:\Users\---\Desktop\MyPandas\test.xlsx" 9wb = px.load_workbook(file_name) 10ws = wb["Sheet1"] 11 12active_sheet_1 = wb.active 13for row in active_sheet_1.rows: 14 excel = [] 15 for cell in row: 16 excel.append(cell.value) 17 print(excel) 18 19# 格納するリスト 20bb_clb = [] 21tf_clb = [] 22pic_clb = [] 23 24# 空行の定義 25def is_empty(cell): 26 return cell is None or not str(cell).strip() 27 28# Excelシートで一列ごとに対応するリストへ格納 29# 部活で格納するリストを分ける 30for row in active_sheet_1.iter_rows(min_row = 5, values_only = True): 31 if all(is_empty(c) for c in row): 32 break 33 if "野球部" in row[4]: 34 bb_clb.append(row) 35 elif "陸上部" in row[4]: 36 tf_clb.append(row) 37 elif "写真クラブ" in row[4]: 38 pic_clb.append(row) 39 40print("") 41print("-------------------------------------------------") 42print("") 43print("< 実行結果 >") 44print("") 45 46 47for i, d in enumerate(tf_clb, start = 1): 48 ws.cell(row = i,column = 1,value = str(d)) 49 50wb.save(file_name) 51 52active_sheet_2 = wb.active 53for row in active_sheet_2.rows: 54 excel_cmp = [] 55 for cell in row: 56 excel_cmp.append(cell.value) 57 print(excel_cmp)
出力結果
< Sheet1 に入っているセルの文字列 > [None, None, None, None, None] [None, None, None, None, None] [None, None, None, None, None] ['名前', '年齢', '性別', '出身', '部活'] ['佐藤', 12, '男', '福島', '緑ヶ丘 写真クラブ'] ['渡辺', 23, '女', '愛媛', '明石 陸上部'] ['山田', 22, 'なし', '京都', 'むべ 野球部'] ['相田', 111, '男', '鹿児島', 'nunu 陸上部'] ------------------------------------------------- < 実行結果 > ["('渡辺', 23, '女', '愛媛', '明石 陸上部')", None, None, None, None] ["('相田', 111, '男', '鹿児島', 'nunu 陸上部')", None, None, None, None] [None, None, None, None, None] ['名前', '年齢', '性別', '出身', '部活'] ['佐藤', 12, '男', '福島', '緑ヶ丘 写真クラブ'] ['渡辺', 23, '女', '愛媛', '明石 陸上部'] ['山田', 22, 'なし', '京都', 'むべ 野球部'] ['相田', 111, '男', '鹿児島', 'nunu 陸上部']
補足情報(FW/ツールのバージョンなど)
python 3.8.5
windows 10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/09 15:55 編集
2021/01/09 15:55 編集
2021/01/09 15:44
2021/01/09 15:46
2021/01/09 15:51
2021/01/09 15:54
退会済みユーザー
2021/01/09 17:02
2021/01/10 00:30 編集
2021/01/10 00:29