# -*- coding: utf-8 -*- import openpyxl, io, sys sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8') CU=r'D:\01.프로젝트\DB수집\작업파일\광역_사이트맵\충청남도\13.청양군\충청남도_청양군.xlsx' BK=r'D:\01.프로젝트\DB수집\작업파일\광역_사이트맵\충청남도\13.청양군\충청남도_청양군_backup_본문탭전개전.xlsx' ws=openpyxl.load_workbook(CU).active; ws2=openpyxl.load_workbook(BK).active # 1~122 diff diff=0 for r in range(1,123): for c in range(1,18): if ws.cell(r,c).value!=ws2.cell(r,c).value: diff+=1; print('DIFF r%dc%d'%(r,c)) print('1~122 셀차이:',diff) # 병합겹침 cells={};ov=0 for m in ws.merged_cells.ranges: for rr in range(m.min_row,m.max_row+1): for cc in range(m.min_col,m.max_col+1): if (rr,cc) in cells: ov+=1 cells[(rr,cc)]=1 print('병합겹침:',ov,'병합수',len(list(ws.merged_cells.ranges))) # B순번 bs=[ws.cell(r,2).value for r in range(3,ws.max_row+1) if ws.cell(r,2).value is not None] print('B순번 개수',len(bs),'첫',bs[0],'끝',bs[-1],'max_row',ws.max_row) # 하이퍼링크 정합(K value==hyperlink) mis=0 for r in range(3,ws.max_row+1): v=ws.cell(r,11).value; hl=ws.cell(r,11).hyperlink if v and str(v).startswith('http'): if not hl or hl.target!=v: mis+=1 print('K 하이퍼링크 불일치:',mis) # 새 영역 확인: 청양사랑기부제 그룹 def show(a,b): print('--- r%d~%d ---'%(a,b)) mr={} for m in ws.merged_cells.ranges: mr[(m.min_row,m.min_col)]=m.max_row for r in range(a,b+1): def mt(c): return '[%d:%d]'%(r,mr[(r,c)]) if (r,c) in mr and mr[(r,c)]>r else '' print('r%d B%s F:%s%s G:%s%s H:%s%s | %s M%s N%s | %s'%(r,ws.cell(r,2).value, str(ws.cell(r,6).value or '')[:10],mt(6),str(ws.cell(r,7).value or '')[:12],mt(7), str(ws.cell(r,8).value or '')[:10],mt(8),ws.cell(r,12).value,ws.cell(r,13).value,ws.cell(r,14).value, (ws.cell(r,11).value or '')[-28:])) show(133,139) show(245,252) print('...특산품...') # 특산물/특산품 위치 찾기 for r in range(123,ws.max_row+1): if ws.cell(r,7).value in ('특산물','특산품'): show(r,r+13 if ws.cell(r,7).value=='특산물' else r+13); break