Installs into .claude/skills of the current project.
Are you the author of Doc Xlsx?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/modu-ai-doc-xlsx-moai-cowork)
---
name: doc-xlsx
description: |
데이터 표·수식·차트를 XLSX 파일로 만들 때 사용합니다.
현재 호스트의 스프레드시트 출력 기능을 확인하고, 원본 수치와 저장된 파일을 대조합니다.
요청 예: "매출 분석표 엑셀로", "예산 추적표 만들어줘", "KPI 차트를 XLSX로".
version: "1.1.1"
---
# XLSX 생성 (doc-xlsx)
## 작업 순서
1. 입력 데이터의 출처·기간·단위·결측값·계산식을 확인한다. 급여·세금·재무 수치는 적용 기준을 추정하지 않는다.
2. 필요한 시트, 열, 수식, 차트와 인쇄 범위를 설계한다. 피벗 표·간트 차트·고급 차트는 실제 도구가 지원하는지 확인한다.
3. 현재 호스트의 XLSX 출력 기능을 우선 확인한다. 없다면 실행 환경에 `openpyxl` 등 적합한 도구가 이미 설치돼 있는지 확인한다. 사용자에게 설치를 필수 절차로 요구하지 않는다.
4. 사용 가능한 경로가 없으면 XLSX 파일을 만들었다고 주장하지 않는다. CSV나 시트 설계안은 사용자에게 형식 변경을 확인한 경우에만 대안으로 제공한다.
`openpyxl`이 설치된 환경에서의 최소 예시는 다음과 같다. 값과 수식은 입력 자료에 맞춰 바꾼다.
```python
from openpyxl import Workbook, load_workbook
wb = Workbook()
ws = wb.active
ws.title = "요약"
ws.append(["항목", "금액"])
ws.append(["매출", 1200])
ws.append(["비용", 700])
ws["B4"] = "=B2-B3"
wb.save("output.xlsx")
check = load_workbook("output.xlsx", data_only=False)
assert check["요약"]["B4"].value == "=B2-B3"
```
## 서식과 계산
- 숫자·통화·날짜 표시 형식은 문서의 통화와 지역 설정에 맞춘다. 원화·A4·파란 헤더를 모든 문서의 기본값으로 두지 않는다.
- 0으로 나누는 식, 빈 셀, 통화 혼합, 퍼센트 분모를 검토한다.
- [openpyxl 공식 문서](https://openpyxl.readthedocs.io/en/stable/)에 따르면 라이브러리는 수식 결과를 계산하지 않는다. 저장된 수식 문자열을 확인하고, 실제 계산 값은 Excel·호환 스프레드시트에서 재계산해 검증한다.
- 차트의 데이터 범위·범례·단위와 조건부 서식의 경계값을 원본과 대조한다.
- 셀·시트 보호는 파일 암호화와 다르다. 민감한 파일의 접근 제한을 시트 보호만으로 해결했다고 주장하지 않는다.
## 출력 검수
- 파일을 다시 열어 시트명·행 수·열 수·값·수식·차트 정의를 확인한다.
- 사용 가능한 스프레드시트 앱에서 수식 계산·차트 표시·인쇄 범위·한글 글꼴을 확인한다. 열지 못했으면 그 검사는 `미실행`으로 남긴다.
- 개인정보는 필요한 범위만 포함하고 공유 대상·저장 위치를 확인한다.
- 다른 OS나 앱에서 같은 레이아웃이 나온다고 단정하지 않는다.
## 관련 스킬
- `moai-officer:doc-reader`: 기존 파일 읽기
- `moai-officer:doc-pdf`: 검토용 PDF 출력
- `moai-analyst:data-visualizer`: 차트 설계