<やりたいこと>
①エクセルファイル開く。
②エクセル1行目のヘッダーに罫線(枠線)をつけてフォントを変える。
③エクセル2行目以降も罫線(枠線)をつける。
④予め用意したList「memo1」に入れておいたデータの値をエクセル3列目から検索し、該当セルに色付けをする。
色々なサイトの記述形式を試したのですが、ダメでした。
python
1 2import openpyxl 3from openpyxl.styles.borders import Border, Side 4 5file_name = "C:\sample+ ".xlsx" 6wb = openpyxl.load_workbook(file_name) 7ws = wb["Sheet1"] 8 9row : int = 1 10while row <= ws.max_row: 11 if row == 1: 12 side = Side(style='thick', color='000000') 13 border = Border(top=side, bottom=side, left=side, right=side) 14 for cell in row: 15 ws[cell.coordinate].border = border 16 for col in ws.columns: 17 ws[row, col].border = border 18 ws[row, col].font = openpyxl.styles.fonts.Font(color='FF0000') 19 else: 20 side = Side(style='thin', color='000000') 21 border = Border(top=side, bottom=side, left=side, right=side) 22 for cell in row: 23 ws[cell.coordinate].border = border 24 row += 1 25 26 27fill = openpyxl.styles.PatternFill(patternType='solid',fgColor='FFFF00', bgColor='FFFF00') 28for row in ws.rows: 29 for a in list_memo1: 30 if ws[row, 3] == a: 31 ws[row, 3].fill = fill 32 33
①~④のどこまで実装済で今どこが問題なのですか?
①~④全て実装済みで
for cell in row:の行で下記のエラーが出ます。
「TypeError: 'int' object is not iterable」
また、ws[row, col].font = openpyxl.styles.fonts.Font(color='FF0000')でも
下記もエラーが発生しています。
TypeError: expected string or bytes-like object
これ以降でもエラー出るかもしれないです。
・エラーメッセージ全文を質問に追記してください。("for cell in row"は質問のコード中に2ヵ所あります。どっちか判りません。)
・”実装済”というのは”正しく動く”という意味で聞きました。詰まっているのは①~④のどこですか?
今、コードを見ました。
TypeError: 'int' object is not iterable はそのままのエラーですよね。
"for cell in row:"このコードで何をしたいのか分かりませんが、"row == 1"のときに"for cell in row:"が実行されるので「for cell in 1:"」と同じになって上記エラーが出ています。
あなたの回答
tips
プレビュー