You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
tabular 모드로 xlsx를 적재할 때, 표 상단의 병합 안 된 단일 셀 제목행(예: □ 제조업 등(건설업 외 업종))을 헤더행으로 오인함. 그 결과 진짜 헤더(연번·기인물·방호조치…)가 데이터행으로 밀리고, 컬럼이 col_2~col_9 무명 키로 저장되어 column_map에는 제목행 하나만 매핑됨.
원인은 _detect_header(converters/xlsx_processor.py)의 헤더행 판정이 "가로병합 없는 첫 행" 기준이기 때문. 원래 의도는 "모든 칸이 찬 첫 행 = 헤더"였으나 그대로 구현되지 않음.
제안: 선두 행이 가로병합 없이 일부 칸만 채워진 경우 제목행으로 스킵. 계층 헤더(가로병합 그룹 + 하위 헤더, 예: 건설업 시트)의 기존 병합 처리는 유지. 수정 후 재적재 필요(tabular 모드만 해당, docling 무관).
증상을 확인할 수 있는 step
해당 xlsx를 tabular 모드로 벡터DB에 적재
적재된 벡터의 property 확인
컬럼 키가 col_2~col_9(무명) + field_<hash>(제목행)로 저장되고, column_map이 {"field_...": "□ 제조업 등(건설업 외 업종)"}처럼 제목행만 매핑됨
프로젝트
No response
상세 설명
tabular 모드로 xlsx를 적재할 때, 표 상단의 병합 안 된 단일 셀 제목행(예:
□ 제조업 등(건설업 외 업종))을 헤더행으로 오인함. 그 결과 진짜 헤더(연번·기인물·방호조치…)가 데이터행으로 밀리고, 컬럼이col_2~col_9무명 키로 저장되어column_map에는 제목행 하나만 매핑됨.원인은
_detect_header(converters/xlsx_processor.py)의 헤더행 판정이 "가로병합 없는 첫 행" 기준이기 때문. 원래 의도는 "모든 칸이 찬 첫 행 = 헤더"였으나 그대로 구현되지 않음.제안: 선두 행이 가로병합 없이 일부 칸만 채워진 경우 제목행으로 스킵. 계층 헤더(가로병합 그룹 + 하위 헤더, 예: 건설업 시트)의 기존 병합 처리는 유지. 수정 후 재적재 필요(tabular 모드만 해당, docling 무관).
증상을 확인할 수 있는 step
col_2~col_9(무명) +field_<hash>(제목행)로 저장되고,column_map이{"field_...": "□ 제조업 등(건설업 외 업종)"}처럼 제목행만 매핑됨기인물·고위험작업·상황·위험성 감소대책등 실제 컬럼명이 키에 없음재현문서