import sys, io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
import openpyxl
from openpyxl.utils import get_column_letter
PKG = r'D:\01.프로젝트\DB수집\작업파일\_제출패키지_2026-06-03\프리랜서1\충청남도_부여군.xlsx'
ws = openpyxl.load_workbook(PKG).active

def sides(cell):
    b=cell.border
    return (b.left.style,b.right.style,b.top.style,b.bottom.style)

# pick a GOOD vertical merge in clean region: E column. Find E merges with their rows.
emerges=sorted([m for m in ws.merged_cells.ranges if m.min_col==5 and m.min_row>=3], key=lambda x:x.min_row)
print('=== E-column merges: anchor & interior & last border (col E) ===')
for m in emerges:
    a=m.min_row; z=m.max_row
    mid=(a+z)//2
    print(f'E{a}:{z}  anchor E{a}={sides(ws.cell(a,5))}  mid E{mid}={sides(ws.cell(mid,5))}  last E{z}={sides(ws.cell(z,5))}  val={ws.cell(a,5).value!r}')

print('\n=== D-column merges ===')
dmerges=sorted([m for m in ws.merged_cells.ranges if m.min_col==4 and m.min_row>=3], key=lambda x:x.min_row)
for m in dmerges:
    a=m.min_row; z=m.max_row; mid=(a+z)//2
    print(f'D{a}:{z} anchor={sides(ws.cell(a,4))} mid={sides(ws.cell(mid,4))} last={sides(ws.cell(z,4))} val={ws.cell(a,4).value!r}')

print('\n=== F-column merges (first few + region 441+) ===')
fmerges=sorted([m for m in ws.merged_cells.ranges if m.min_col==6 and m.min_row>=3], key=lambda x:x.min_row)
for m in fmerges:
    a=m.min_row; z=m.max_row
    print(f'F{a}:{z} anchor={sides(ws.cell(a,6))} last={sides(ws.cell(z,6))} val={ws.cell(a,6).value!r}')
