공공기관2 작업 중. _temp 몽타주(재생성가능)는 제외. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
26 lines
1.3 KiB
Python
26 lines
1.3 KiB
Python
import sys, io
|
|
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
|
import openpyxl
|
|
ws = openpyxl.load_workbook(r'D:\01.프로젝트\DB수집\작업파일\_제출패키지_2026-06-03\프리랜서1\충청남도_부여군.xlsx').active
|
|
merges=list(ws.merged_cells.ranges)
|
|
def eff(r,c):
|
|
for m in merges:
|
|
if m.min_row<=r<=m.max_row and m.min_col<=c<=m.max_col:
|
|
return ws.cell(m.min_row,m.min_col).value
|
|
return ws.cell(r,c).value
|
|
gmerges=sorted([m for m in merges if m.min_col==7 and m.min_row>=3], key=lambda x:x.min_row)
|
|
print(f'G merges: {len(gmerges)}')
|
|
# show first 6 G-merge regions in full (D..K)
|
|
for m in gmerges[:6]:
|
|
a,z=m.min_row,m.max_row
|
|
print(f'\n--- G{a}:{z} (val={ws.cell(a,7).value!r}) ---')
|
|
for r in range(a, z+1):
|
|
print(f' r{r} D={eff(r,4)!r} E={eff(r,5)!r} F={eff(r,6)!r} G={ws.cell(r,7).value!r} H={ws.cell(r,8).value!r} I={ws.cell(r,9).value!r} K={ws.cell(r,11).value!r}')
|
|
# Are H/I/J ever populated under these G merges?
|
|
hpop=sum(1 for m in gmerges for r in range(m.min_row,m.max_row+1) if ws.cell(r,8).value not in (None,''))
|
|
print(f'\nG병합 구간 내 H(8) 값 있는 행 수: {hpop}')
|
|
# distribution of which D group the G merges fall in
|
|
from collections import Counter
|
|
dc=Counter(eff(m.min_row,4) for m in gmerges)
|
|
print('G병합 소속 대분류:', dict(dc))
|