Community코딩 & 개발github.com

xlsx

포괄적인 스프레드시트 생성, 편집 및 분석 도구로, 수식, 서식, 데이터 분석 및 시각화를 지원합니다. Claude가 .xlsx, .xlsm, .csv, .tsv 등의 스프레드시트 파일로 작업할 때 사용됩니다.

xlsx란 무엇인가요?

이 스킬은 Claude가 엑셀 파일(.xlsx, .xlsm, .csv, .tsv 등)을 생성, 편집 및 분석할 수 있도록 설계된 종합적인 스프레드시트 도구입니다. 주요 기능으로는 수식과 서식을 포함한 새 스프레드시트 생성, 데이터 읽기 및 분석, 기존 스프레드시트 수정(수식 유지), 데이터 분석 및 시각화, 수식 재계산 등이 있습니다. 이 스킬은 pandas(데이터 분석)와 openpyxl(수식/서식) 라이브러리를 활용하며, 재무 모델링을 위한 업계 표준 색상 코딩 규칙, 숫자 형식 표준, 수식 작성 규칙을 포함한 상세한 지침을 제공합니다. 특히 수식을 직접 계산하지 않고 Excel 수식으로 작성하여 스프레드시트의 동적 업데이트 가능성을 보장하며, LibreOffice를 통한 수식 재계산 및 오류 검증 프로세스를 자동화합니다. 지원 플랫폼은 Claude Code, Cursor, Codex 등의 AI 에이전트 환경이며, 주요 사용 사례로는 재무 모델 구축, 데이터 분석 보고서 작성, 기존 템플릿 수정 등이 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ComposioHQ/awesome-claude-skills/tree/master/document-skills/xlsx

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

출력 요구사항

모든 Excel 파일

수식 오류 없음

  • 모든 Excel 모델은 #REF!, #DIV/0!, #VALUE!, #N/A, #NAME? 오류가 하나도 없이 제공되어야 합니다.

기존 템플릿 유지 (템플릿 업데이트 시)

  • 파일을 수정할 때 기존 서식, 스타일 및 관례를 연구하고 정확히 일치시켜야 합니다.
  • 확립된 패턴이 있는 파일에 표준화된 서식을 강제로 적용하지 마십시오.
  • 기존 템플릿 관례가 항상 이 지침보다 우선합니다.

재무 모델

색상 코딩 표준

사용자 또는 기존 템플릿에서 별도로 명시하지 않는 한

업계 표준 색상 규칙

  • 파란색 텍스트 (RGB: 0,0,255): 하드코딩된 입력값 및 사용자가 시나리오에 따라 변경할 숫자
  • 검은색 텍스트 (RGB: 0,0,0): 모든 수식 및 계산
  • 녹색 텍스트 (RGB: 0,128,0): 동일한 통합 문서 내 다른 워크시트에서 가져온 링크
  • 빨간색 텍스트 (RGB: 255,0,0): 다른 파일에 대한 외부 링크
  • 노란색 배경 (RGB: 255,255,0): 주의가 필요한 주요 가정 또는 업데이트해야 할 셀

숫자 형식 표준

필수 형식 규칙

  • 연도: 텍스트 문자열로 서식 지정 (예: "2024", "2,024" 아님)
  • 통화: $#,##0 서식 사용; 헤더에 항상 단위 명시 ("수익 ($mm)")
  • 0: 모든 0을 "-"로 표시하도록 숫자 서식 지정 (백분율 포함) (예: $#,##0;($#,##0);-)
  • 백분율: 기본값 0.0% 서식 (소수점 한 자리)
  • 배수: EV/EBITDA, P/E 등 가치 평가 배수는 0.0x 서식
  • 음수: 괄호 사용 (123), 마이너스 기호 -123 사용하지 않음

수식 작성 규칙

가정 입력 위치

  • 모든 가정 (성장률, 마진, 배수 등)은 별도의 가정 셀에 배치
  • 수식에서 하드코딩된 값 대신 셀 참조 사용
  • 예: =B5*1.05 대신 =B5*(1+$B$6) 사용

수식 오류 방지

  • 모든 셀 참조가 올바른지 확인
  • 범위의 오프바이원(off-by-one) 오류 확인
  • 모든 예측 기간에 걸쳐 일관된 수식 확인
  • 극단값(0, 음수)으로 테스트
  • 의도하지 않은 순환 참조가 없는지 확인

하드코드에 대한 문서화 요구사항

  • 셀 내 또는 옆(표 끝인 경우)에 주석 추가. 형식: "출처: [시스템/문서], [날짜], [특정 참조], [URL (해당 시)]"
  • 예시:
    • "출처: 회사 10-K, FY2024, 45페이지, 수익 주석, [SEC EDGAR URL]"
    • "출처: 회사 10-Q, 2025년 2분기, 전시물 99.1, [SEC EDGAR URL]"
    • "출처: Bloomberg 터미널, 2025년 8월 15일, AAPL US Equity"
    • "출처: FactSet, 2025년 8월 20일, 컨센서스 추정 화면"

XLSX 생성, 편집 및 분석

개요

사용자가 .xlsx 파일의 내용을 생성, 편집 또는 분석하도록 요청할 수 있습니다. 다양한 작업에 대해 다른 도구와 워크플로우를 사용할 수 있습니다.

중요 요구사항

수식 재계산을 위해 LibreOffice 필요: recalc.py 스크립트를 사용하여 수식 값을 재계산하기 위해 LibreOffice가 설치되어 있다고 가정할 수 있습니다. 스크립트는 첫 실행 시 LibreOffice를 자동으로 구성합니다.

데이터 읽기 및 분석

pandas를 사용한 데이터 분석

데이터 분석, 시각화 및 기본 작업에는 강력한 데이터 조작 기능을 제공하는 pandas를 사용하세요.

import pandas as pd

# Excel 읽기
df = pd.read_excel('file.xlsx')  # 기본값: 첫 번째 시트
all_sheets = pd.read_excel('file.xlsx', sheet_name=None)  # 모든 시트를 딕셔너리로

# 분석
df.head()      # 데이터 미리보기
df.info()      # 열 정보
df.describe()  # 통계

# Excel 쓰기
df.to_excel('output.xlsx', index=False)

Excel 파일 워크플로우

중요: 수식 사용, 하드코딩된 값 사용 금지

Python에서 값을 계산하고 하드코딩하는 대신 항상 Excel 수식을 사용하세요. 이렇게 하면 스프레드시트가 동적으로 유지되고 업데이트 가능합니다.

❌ 잘못된 방법 - 계산된 값 하드코딩

# 나쁨: Python에서 계산하고 결과를 하드코딩
total = df['Sales'].sum()
sheet['B10'] = total  # 5000을 하드코딩

# 나쁨: Python에서 성장률 계산
growth = (df.iloc[-1]['Revenue'] - df.iloc[0]['Revenue']) / df.iloc[0]['Revenue']
sheet['C5'] = growth  # 0.15를 하드코딩

# 나쁨: Python에서 평균 계산
avg = sum(values) / len(values)
sheet['D20'] = avg  # 42.5를 하드코딩

✅ 올바른 방법 - Excel 수식 사용

# 좋음: Excel이 합계를 계산하도록 함
sheet['B10'] = '=SUM(B2:B9)'

# 좋음: Excel 수식으로 성장률
sheet['C5'] = '=(C4-C2)/C2'

# 좋음: Excel 함수를 사용한 평균
sheet['D20'] = '=AVERAGE(D2:D19)'

이것은 합계, 백분율, 비율, 차이 등 모든 계산에 적용됩니다. 스프레드시트는 원본 데이터가 변경될 때 다시 계산할 수 있어야 합니다.

일반 워크플로우

  1. 도구 선택: 데이터는 pandas, 수식/서식은 openpyxl
  2. 생성/로드: 새 통합 문서 생성 또는 기존 파일 로드
  3. 수정: 데이터, 수식 및 서식 추가/편집
  4. 저장: 파일에 쓰기
  5. 수식 재계산 (필수, 수식 사용 시): recalc.py 스크립트 사용
    python recalc.py output.xlsx
    
  6. 오류 확인 및 수정:
    • 스크립트는 오류 세부 정보가 포함된 JSON을 반환합니다.
    • status가 errors_found인 경우 error_summary에서 특정 오류 유형과 위치를 확인합니다.
    • 식별된 오류를 수정하고 다시 계산합니다.
    • 수정해야 할 일반적인 오류:
      • #REF!: 잘못된 셀 참조
      • #DIV/0!: 0으로 나누기
      • #VALUE!: 수식에 잘못된 데이터 유형
      • #NAME?: 인식할 수 없는 수식 이름

새 Excel 파일 생성

# openpyxl을 사용한 수식 및 서식
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment

wb = Workbook()
sheet = wb.active

# 데이터 추가
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'
sheet.append(['Row', 'of', 'data'])

# 수식 추가
sheet['B2'] = '=SUM(A1:A10)'

# 서식
sheet['A1'].font = Font(bold=True, color='FF0000')
sheet['A1'].fill = PatternFill('solid', start_color='FFFF00')
sheet['A1'].alignment = Alignment(horizontal='center')

# 열 너비
sheet.column_dimensions['A'].width = 20

wb.save('output.xlsx')

기존 Excel 파일 편집

# openpyxl을 사용한 수식 및 서식 유지
from openpyxl import load_workbook

# 기존 파일 로드
wb = load_workbook('existing.xlsx')
sheet = wb.active  # 또는 특정 시트의 경우 wb['SheetName']

# 여러 시트 작업
for sheet_name in wb.sheetnames:
    sheet = wb[sheet_name]
    print(f"시트: {sheet_name}")

# 셀 수정
sheet['A1'] = 'New Value'
sheet.insert_rows(2)  # 2번 위치에 행 삽입
sheet.delete_cols(3)  # 3번 열 삭제

# 새 시트 추가
new_sheet = wb.create_sheet('NewSheet')
new_sheet['A1'] = 'Data'

wb.save('modified.xlsx')

수식 재계산

openpyxl로 생성되거나 수정된 Excel 파일에는 문자열로 수식이 포함되어 있지만 계산된 값은 포함되어 있지 않습니다. 제공된 recalc.py 스크립트를 사용하여 수식을 재계산합니다.

python recalc.py <excel_file> [timeout_seconds]

예시:

python recalc.py output.xlsx 30

스크립트:

  • 첫 실행 시 LibreOffice 매크로를 자동으로 설정합니다.
  • 모든 시트의 모든 수식을 재계산합니다.
  • Excel 오류(#REF!, #DIV/0! 등)에 대해 모든 셀을 검사합니다.
  • 상세한 오류 위치와 개수가 포함된 JSON을 반환합니다.
  • Linux 및 macOS에서 모두 작동합니다.

수식 확인 체크리스트

수식이 올바르게 작동하는지 확인하기 위한 빠른 점검:

필수 확인 사항

  • 2-3개 샘플 참조 테스트: 전체 모델을 구축하기 전에 올바른 값을 가져오는지 확인
  • 열 매핑: Excel 열이 일치하는지 확인 (예: 64번 열 = BL, BK 아님)
  • 행 오프셋: Excel 행은 1부터 시작한다는 점을 기억 (DataFrame 행 5 = Excel 행 6)

일반적인 실수

  • NaN 처리: pd.notna()로 null 값 확인
  • 오른쪽 끝 열: FY 데이터는 종종 50열 이상에 위치
  • 여러 일치 항목: 첫 번째 항목뿐만 아니라 모든 항목 검색
  • 0으로 나누기: 수식에서 /를 사용하기 전에 분모 확인 (#DIV/0!)
  • 잘못된 참조: 모든 셀 참조가 의도한 셀을 가리키는지 확인 (#REF!)
  • 시트 간 참조: 시트 연결에 올바른 형식 사용 (Sheet1!A1)

수식 테스트 전략

  • 작게 시작: 광범위하게 적용하기 전에 2-3개 셀에서 수식 테스트
  • 종속성 확인: 수식에서 참조하는 모든 셀이 존재하는지 확인
  • 극단값 테스트: 0, 음수 및 매우 큰 값 포함

recalc.py 출력 해석

스크립트는 오류 세부 정보가 포함된 JSON을 반환합니다:

{
  "status": "success",           // 또는 "errors_found"
  "total_errors": 0,              // 총 오류 수
  "total_formulas": 42,           // 파일의 수식 수
  "error_summary": {              // 오류가 있는 경우에만 표시
    "#REF!": {
      "count": 2,
      "locations": ["Sheet1!B5", "Sheet1!C10"]
    }
  }
}

모범 사례

라이브러리 선택

  • pandas: 데이터 분석, 대량 작업 및 간단한 데이터 내보내기에 가장 적합
  • openpyxl: 복잡한 서식, 수식 및 Excel 관련 기능에 가장 적합

openpyxl 작업 시

  • 셀 인덱스는 1부터 시작 (row=1, column=1은 셀 A1)
  • 계산된 값을 읽으려면 data_only=True 사용: load_workbook('file.xlsx', data_only=True)
  • 경고: data_only=True로 열고 저장하면 수식이 값으로 대체되어 영구적으로 손실됩니다.
  • 대용량 파일의 경우: 읽기는 read_only=True, 쓰기는 write_only=True 사용
  • 수식은 유지되지만 평가되지는 않습니다. recalc.py를 사용하여 값을 업데이트하세요.

pandas 작업 시

  • 추론 문제를 피하기 위해 데이터 유형 지정: pd.read_excel('file.xlsx', dtype={'id': str})
  • 대용량 파일의 경우 특정 열만 읽기: pd.read_excel('file.xlsx', usecols=['A', 'C', 'E'])
  • 날짜를 올바르게 처리: pd.read_excel('file.xlsx', parse_dates=['date_column'])

코드 스타일 지침

중요: Excel 작업을 위한 Python 코드를 생성할 때:

  • 불필요한 주석 없이 최소한의 간결한 Python 코드 작성
  • 장황한 변수 이름 및 중복 작업 피하기
  • 불필요한 print 문 피하기

Excel 파일 자체의 경우:

  • 복잡한 수식이나 중요한 가정이 있는 셀에 주석 추가
  • 하드코딩된 값의 데이터 출처 문서화
  • 주요 계산 및 모델 섹션에 대한 메모 포함

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

ably-automation

Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.

abstract-automation

Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.

abuselpdb-automation

Automate Abuselpdb tasks via Rube MCP (Composio). Always search tools first for current schemas.

abyssale-automation

Automate Abyssale tasks via Rube MCP (Composio). Always search tools first for current schemas.

accelo-automation

Automate Accelo tasks via Rube MCP (Composio). Always search tools first for current schemas.

accredible-certificates-automation

Automate Accredible Certificates tasks via Rube MCP (Composio). Always search tools first for current schemas.

acculynx-automation

Automate Acculynx tasks via Rube MCP (Composio). Always search tools first for current schemas.

active-campaign-automation

Automate ActiveCampaign tasks via Rube MCP (Composio). Always search tools first for current schemas.

addresszen-automation

Automate Addresszen tasks via Rube MCP (Composio). Always search tools first for current schemas.

adobe-automation

Automate Adobe tasks via Rube MCP (Composio). Always search tools first for current schemas.

adrapid-automation

Automate Adrapid tasks via Rube MCP (Composio). Always search tools first for current schemas.

adyntel-automation

Automate Adyntel tasks via Rube MCP (Composio). Always search tools first for current schemas.

aeroleads-automation

Automate Aeroleads tasks via Rube MCP (Composio). Always search tools first for current schemas.

aero-workflow-automation

Automate Aero Workflow tasks via Rube MCP (Composio). Always search tools first for current schemas.

affinda-automation

Automate Affinda tasks via Rube MCP (Composio). Always search tools first for current schemas.

affinity-automation

Automate Affinity tasks via Rube MCP (Composio). Always search tools first for current schemas.

agencyzoom-automation

Automate Agencyzoom tasks via Rube MCP (Composio). Always search tools first for current schemas.

agent-mail-automation

Automate Agent Mail tasks via Rube MCP (Composio). Always search tools first for current schemas.

agentql-automation

Automate Agentql tasks via Rube MCP (Composio). Always search tools first for current schemas.

agenty-automation

Automate Agenty tasks via Rube MCP (Composio). Always search tools first for current schemas.

관련 스킬