前提・実現したいこと
openpyxlを活用して特定のセル範囲の色塗りを実現したいと思っています。
xxxxxxxxとyyyyyyyy部で1セットとして、
エクセル全体をxxxxxxxxで舐めて、xxxxxxxx部が引っかかたら、xxxxxxxxをオレンジ色で背景を塗る・・・①
隣列が空白セルならxxxxxxxx部の1行下のyyyyyyyy部をオレンジ色で背景を塗る(繰り返し)・・・②
(yyyyyyyy部はセットによって行数は異なります。)
②部分を削除して①を実行すると①の部分は実現できました。
②部分は試行錯誤しつつも理解が未熟で実現できておらず、コーディングの目途もついておりません。初心者で恐縮ですが、作成のご教示をいただけると幸いです。
<イメージ>
C列|D列
n |xxxxxxxx
空白|yyyyyyyy
空白|yyyyyyyy
空白|yyyyyyyy
n+1|xxxxxxxx
該当のソースコード
import openpyxl as xl
from openpyxl.styles import PatternFill
####オレンジ色設定
fill = PatternFill(patternType='solid', fgColor='FFC000')
wb = xl.load_workbook('input_file.xlsx')
ws = wb['input']
####input番号リスト
input = []
for cell in ws['A']:
input.append(cell.value)
####input番号チェック<<<<<<<<①部分
for list in input:
for ws in wb.worksheets:
for row in ws:
for cell in row:
if list in str(cell.value):
ws[cell.coordinate].fill = fill
####input番号チェック<<<<<<<<②部分
i = 1
j = 1
for list in input:
for ws in wb.worksheets:
for row in ws:
for cell in row:
if list in str([ws.cell(row=i,column=j).value]):
ws[ws.cell(row=i,column=j).coordinate].fill = fill
i = i + 1
j = j + 1
####save target xlsx file
wb.save('output_file.xlsx')
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。