Skip to content

feat: Excel(xlsx) 지원 + 머리말/노트 커버리지 (v0.10.0)#10

Merged
SonAIengine merged 1 commit into
mainfrom
feat/xlsx-support
Jun 1, 2026
Merged

feat: Excel(xlsx) 지원 + 머리말/노트 커버리지 (v0.10.0)#10
SonAIengine merged 1 commit into
mainfrom
feat/xlsx-support

Conversation

@SonAIengine
Copy link
Copy Markdown
Contributor

Added — Excel(.xlsx) 지원

XlsxAdapter(openpyxl). 워크시트=표, get/set_cell·render_template·fill_form(base 상속)·append_row, 병합셀 인지, 셀크기 메타. load("*.xlsx") 자동 디스패치 — MCP 도구도 그대로 동작.

Fixed — 플레이스홀더 커버리지

  • docx get_placeholders 병합표 크래시(inspect 깨짐) — _build_grid anchor 순회로 수정.
  • docx 머리말/꼬리말 + pptx 노트 플레이스홀더 누락(render/inspect 불일치) 수정.

검증

77개 테스트 통과, ruff·mypy 클린.

🤖 Generated with Claude Code

### Added — Excel(.xlsx) 지원 (XlsxAdapter, openpyxl)
- 각 워크시트를 하나의 표로 매핑. get_tables/get_cell/set_cell/append_to_cell/
  append_row/render_template 구현, fill_form 은 base 구현 자동 동작.
- 병합 셀 anchor/span 인지(비-anchor 쓰기 MergedCellWriteError), 셀 크기(cm) 메타.
- _ADAPTERS 에 .xlsx 등록 → load 자동 디스패치, MCP 도구 그대로 동작.
- 의존성 openpyxl>=3.1 추가.

### Fixed — 플레이스홀더 커버리지 불일치
- docx get_placeholders 가 머리말/꼬리말을, pptx 가 슬라이드 노트를 놓치던 문제
  (render 는 채우는데 inspect/used/missing 에 누락). 양쪽 스캔 범위를 render 와 일치.

검증: xlsx inspect/fill/render/round-trip + MCP 경로, docx 머리말·pptx 노트 회귀
테스트. 77 개 통과, ruff·mypy 클린.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@SonAIengine SonAIengine merged commit a0a3e91 into main Jun 1, 2026
@SonAIengine SonAIengine deleted the feat/xlsx-support branch June 1, 2026 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant