# -*- coding: utf-8 -*- """시각판정 N 보정 적용: python _n_fix.py '{"39":"어문","44":"어문"}' 변경 셀(N=14열)에 하늘색(FFBDD7EE) fg+bg + 값 교체. 행번호=엑셀 실제 행.""" import io, sys, os, json, glob sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') import openpyxl from openpyxl.styles import PatternFill BASE = r"D:\01.프로젝트\DB수집\작업파일\공공기관2" BLUE = PatternFill("solid", fgColor="FFBDD7EE", bgColor="FFBDD7EE") def main(): num = sys.argv[1] fixes = json.loads(sys.argv[2]) fp = glob.glob(os.path.join(BASE, f"{num}.*", "*.xlsx")) fp = [x for x in fp if "_backup" not in x and "~$" not in x][0] wb = openpyxl.load_workbook(fp) ws = wb.active changed = 0 for r, newN in fixes.items(): cell = ws.cell(int(r), 14) old = cell.value if old != newN: cell.value = newN cell.fill = BLUE changed += 1 print(f" r{r}: {old} → {newN}") wb.save(fp) print(f"[{os.path.basename(fp)}] {changed}행 변경") if __name__ == '__main__': main()