【Python】CellIsRule 오브젝트, FormulaRule 오브젝트를 사용해 특정의 셀이나 행의 표시 형식을 바꾼다.
오늘의 주의(복습)는, 조건부 서식에 관해서입니다.
파이썬에서 Excel을 조작하기 위해 openpyxl이라는 패키지를 사용하고 있습니다.
상기와 같은 책 「상품 리스트를」
이런 표로 변경하고 싶습니다.
여기서 포인트는
CellIsRule 객체
CellIsRule(operator='条件', formula=[値],
font=Fontオブジェクト,
border=Borderオブジェクト,
fill=PatternFillオブジェクト)
조건을 충족하는 셀의 서식을 변경하려면 먼저 조건부 서식을 만듭니다.
생성하려면 위의 CellIsRule 객체를 사용합니다.
operator 인수에 조건을 설정하고,
조건은 formula 인수에 설명된 값에 적용됩니다.
operator 인수의 조건은 다음과 같습니다.
CellIsRule(operator='条件', formula=[値],
font=Fontオブジェクト,
border=Borderオブジェクト,
fill=PatternFillオブジェクト)
font, border, fill의 각 인수에는 조건을 만족했을 때에 설정하는 서식을
Font 객체 등으로 설정합니다.
CellIsRule 개체를 만든 후 어떤 셀에 설정할지
Worksheet의 conditional_formatting.add 메서드에서 설정합니다.
ws.conditional_formatting.add('条件付き書式を設定するセルの範囲',
CellIsRule)
FormulaRule 객체
FormulaRule(formula=[数式],
font=Fontオブジェクト,
border=Borderオブジェクト,
fill=PatternFillオブジェクト)
CellIsRule 객체와 비슷하지만
보다 상세한 조건 지정이나, 행 전체의 서식 변경시에 사용합니다.
수식을 사용하는 것이 다른 점입니까?
어떤 셀로 설정할지는 CellIsRule 객체의 시간과 유사합니다.
Worksheet의 conditional_formatting.add 메서드에서 설정합니다.
최종 코드
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill
from openpyxl.formatting.rule import CellIsRule, FormulaRule
wb = load_workbook('商品リスト.xlsx')
ws = wb.active
# フォントの設定
blue_font = Font(color='0000ff', bold=True)
# セルの色を設定
gray_fill = PatternFill(bgColor='C0C0C0', fill_type='solid')
# フォントを変更する範囲と条件式
cell_rule = CellIsRule(operator='lessThanOrEqual',
formula=[0.55], font=blue_font)
# セルの色を変更する範囲と条件式
formula_rule = FormulaRule(formula=['$H3="業者B"'], fill=gray_fill)
ws.conditional_formatting.add('G3:G24', cell_rule)
ws.conditional_formatting.add('B3:H24', formula_rule)
wb.save('商品リスト_条件追加.xlsx')
여담①
이번에 PatternFill 객체의 fill_type 인수를 "solid"로 했기 때문에
fgColor='C0C0C0'라고 기술하고 있던 것입니다.
그러면 왜인지, 셀의 색이 백색이 되어 버렸습니다.
bgColor='C0C0C0'로 변경하면 지정대로 회색이 되었습니다.
만약을 위해서, 다른 패턴도 시험해 보았습니다만
그쪽은 제대로 지정대로 색칠해줍니다.
앞으로는
PatternFill(fgColor='C0C0C0', bgColor='C0C0C0', fill_type='solid')
와 같이, 둘 다 같은 색을 지정해 주면 실수가 없는 것 같습니다.
여담②
조건부 서식은 셀이 아니라 시트를 대상으로 설정합니다.
Excel의 「홈」→「조건부 서식」→「룰의 관리」로 확인할 수 있습니다.
의외로 이 설정, 수수하게 귀찮게 하는군요・・・.
매번이라면 더욱. 프로그램은 위대하네요.
Reference
이 문제에 관하여(【Python】CellIsRule 오브젝트, FormulaRule 오브젝트를 사용해 특정의 셀이나 행의 표시 형식을 바꾼다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rihu-do/items/f2436e8af7562bde03fe
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FormulaRule(formula=[数式],
font=Fontオブジェクト,
border=Borderオブジェクト,
fill=PatternFillオブジェクト)
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill
from openpyxl.formatting.rule import CellIsRule, FormulaRule
wb = load_workbook('商品リスト.xlsx')
ws = wb.active
# フォントの設定
blue_font = Font(color='0000ff', bold=True)
# セルの色を設定
gray_fill = PatternFill(bgColor='C0C0C0', fill_type='solid')
# フォントを変更する範囲と条件式
cell_rule = CellIsRule(operator='lessThanOrEqual',
formula=[0.55], font=blue_font)
# セルの色を変更する範囲と条件式
formula_rule = FormulaRule(formula=['$H3="業者B"'], fill=gray_fill)
ws.conditional_formatting.add('G3:G24', cell_rule)
ws.conditional_formatting.add('B3:H24', formula_rule)
wb.save('商品リスト_条件追加.xlsx')
여담①
이번에 PatternFill 객체의 fill_type 인수를 "solid"로 했기 때문에
fgColor='C0C0C0'라고 기술하고 있던 것입니다.
그러면 왜인지, 셀의 색이 백색이 되어 버렸습니다.
bgColor='C0C0C0'로 변경하면 지정대로 회색이 되었습니다.
만약을 위해서, 다른 패턴도 시험해 보았습니다만
그쪽은 제대로 지정대로 색칠해줍니다.
앞으로는
PatternFill(fgColor='C0C0C0', bgColor='C0C0C0', fill_type='solid')
와 같이, 둘 다 같은 색을 지정해 주면 실수가 없는 것 같습니다.
여담②
조건부 서식은 셀이 아니라 시트를 대상으로 설정합니다.
Excel의 「홈」→「조건부 서식」→「룰의 관리」로 확인할 수 있습니다.
의외로 이 설정, 수수하게 귀찮게 하는군요・・・.
매번이라면 더욱. 프로그램은 위대하네요.
Reference
이 문제에 관하여(【Python】CellIsRule 오브젝트, FormulaRule 오브젝트를 사용해 특정의 셀이나 행의 표시 형식을 바꾼다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rihu-do/items/f2436e8af7562bde03fe
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
PatternFill(fgColor='C0C0C0', bgColor='C0C0C0', fill_type='solid')
조건부 서식은 셀이 아니라 시트를 대상으로 설정합니다.
Excel의 「홈」→「조건부 서식」→「룰의 관리」로 확인할 수 있습니다.
의외로 이 설정, 수수하게 귀찮게 하는군요・・・.
매번이라면 더욱. 프로그램은 위대하네요.
Reference
이 문제에 관하여(【Python】CellIsRule 오브젝트, FormulaRule 오브젝트를 사용해 특정의 셀이나 행의 표시 형식을 바꾼다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rihu-do/items/f2436e8af7562bde03fe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)