# -*- coding: utf-8 -*- # 청양 메뉴구조 진단: 123~175 D/E/F/G + 병합범위. 밀림(라벨 어긋남)/병합경계 확인 import openpyxl, io, sys sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8') F=r'D:\01.프로젝트\DB수집\작업파일\광역_사이트맵\충청남도\13.청양군\충청남도_청양군.xlsx' wb=openpyxl.load_workbook(F); ws=wb.active # 병합 맵: 각 셀이 어느 병합범위 anchor인지 mranges={} for mr in ws.merged_cells.ranges: mranges[(mr.min_row,mr.min_col)]=(mr.max_row,mr.max_col) def cv(r,c): return str(ws.cell(r,c).value or '')[:14] def mtag(r,c): if (r,c) in mranges: mx=mranges[(r,c)] return '[%d:%d]'%(r,mx[0]) if mx[0]>r else '' return '' print('row B | D대 | E중 | F소 | G세부 | L') for r in range(123,176): print('r%d B=%s | D:%s%s | E:%s%s | F:%s%s | G:%s%s | %s'%( r,ws.cell(r,2).value, cv(r,4),mtag(r,4), cv(r,5),mtag(r,5), cv(r,6),mtag(r,6), cv(r,7),mtag(r,7), ws.cell(r,12).value))