実現したいこと
帳票ファイルの赤枠の部分(P1)を
取込ファイルのA2列~下へ同じものをコピーしたい
※添付画像が取り込み可能な形式です
前提
pythonにて会社の帳票エクセルファイルを読み込み、その中の一部をコピーし、
システムに取り込み可能な形式に自動編集させたいです。
読み込むエクセルファイルは会社の帳票に工程などを入力したものです。
現状、そのままの形式ではシステムに工程を取り込みが出来ないので、
一定の条件を満たされた形式に手作業にてコピー&ペーストにて書き換えています。
コピー&ペースト作業を自動化したいので、
プログラム完成後は誰でも操作可能なexeファイルを作成します。
発生している問題・エラーメッセージ
帳票ファイルの赤枠の部分(P1)を取り込みファイルのA2列~下へ同じものをコピーしたい為、
リストにP1を格納し、for文にて繰り返し書き込みを考えました。
しかし、以下のエラーメッセージが発生しています。
['工程パターンコード', '行№', '工程№', '工程外径', '備考'] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-10-a95a3e2b5b99> in <module> 12 wrtr.writerow(header) # ヘッダーを書き込む 13 ---> 14 for row in ws["P1"]: 15 a=[] 16 for col in row: TypeError: 'Cell' object is not iterable
該当のソースコード
python
1import openpyxl 2import csv 3 4header = ['工程パターンコード', '行№','工程№', '工程外径','備考'] 5 6wb = openpyxl.load_workbook("1.xlsx") 7ws = wb.worksheets[0] 8f=open('取込'+'.csv','a',newline='') 9print(header) 10 11wrtr=csv.writer(f,delimiter=',') 12wrtr.writerow(header) # ヘッダーを書き込む 13 14for row in ws["P1"]: 15 a=[] 16 for col in row: 17 a.append(col.value) 18 19 20for row in ws["C29:O48"]: 21 values = [] 22 23 for col in row: 24 values.append(col.value) 25 del values[4:9] 26 del values[3:7] 27 28 29 if values[2] is None: 30 print(values) 31 32 else: 33 values[1]=values[0] 34 35 36 wrtr.writerow(values) 37f.close()
試したこと
以下のコードにて帳票P1の内容を繰り返し処理にて取り込みファイルA行にコピーさせようとしました。
for row in ws["P1"]: a=[] for col in row: a.append(col.value)

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/02/18 15:07 編集
2023/02/19 02:31 編集
2023/02/21 13:46