엑셀(Excel)에 LLM 어시스턴트를 통합하려면, 엑셀의 주요 구성 요소(셀, 시트, 워크북, 함수, 차트 등)를 제어하고 데이터를 읽고 쓰는 API가 필요합니다. 이를 통해 LLM 어시스턴트가 사용자의 자연어 요청에 따라 엑셀 작업을 수행할 수 있습니다. 다음은 엑셀 내부 각 구성 요소에 필요한 API 목록입니다.
GET /workbooks
현재 열려 있는 모든 워크북 목록 가져오기.
응답 예시:
json
코드 복사
[
{"id": "workbook1", "name": "Budget.xlsx"},
{"id": "workbook2", "name": "SalesData.xlsx"}
]
POST /workbooks
새 워크북 생성.
파라미터 예시:
json
코드 복사
{"name": "NewWorkbook"}
응답 예시:
json
코드 복사
{"id": "workbook3", "name": "NewWorkbook.xlsx"}
DELETE /workbooks/{workbook_id}
특정 워크북 닫기 또는 삭제.
2. 워크시트(Worksheet) API
각 워크북 내에서 개별 시트(탭)를 관리하는 API.
GET /workbooks/{workbook_id}/sheets
특정 워크북의 모든 시트 목록 가져오기.
응답 예시:
json
코드 복사
[
{"id": "sheet1", "name": "Summary"},
{"id": "sheet2", "name": "Details"}
]
POST /workbooks/{workbook_id}/sheets
새 시트 추가.
파라미터 예시:
json
코드 복사
{"name": "NewSheet"}
DELETE /workbooks/{workbook_id}/sheets/{sheet_id}
특정 시트 삭제.
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/rename
시트 이름 변경.
파라미터 예시:
json
코드 복사
{"new_name": "UpdatedSheet"}
3. 셀(Cell) API
엑셀의 셀 데이터를 읽고 쓰는 API.
GET /workbooks/{workbook_id}/sheets/{sheet_id}/cells/{range}
특정 범위의 셀 데이터를 가져오기.
예시 요청: GET /workbooks/1/sheets/1/cells/A1:B10
응답 예시:
json
코드 복사
{
"range": "A1:B10",
"values": [
["Name", "Sales"],
["John", 500],
["Doe", 300]
]
}
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/cells/{range}
특정 범위의 셀 데이터 업데이트.
파라미터 예시:
json
코드 복사
{
"range": "A1:A2",
"values": [["UpdatedName"], ["UpdatedSales"]]
}
POST /workbooks/{workbook_id}/sheets/{sheet_id}/cells/formula
특정 셀에 수식 추가.
파라미터 예시:
json
코드 복사
{
"cell": "C1",
"formula": "=SUM(B1:B10)"
}
4. 테이블(Table) API
엑셀의 데이터 테이블을 관리하는 API.
GET /workbooks/{workbook_id}/sheets/{sheet_id}/tables
특정 시트 내 테이블 목록 가져오기.
POST /workbooks/{workbook_id}/sheets/{sheet_id}/tables
범위를 지정하여 새로운 테이블 생성.
파라미터 예시:
json
코드 복사
{
"range": "A1:D10",
"name": "SalesTable"
}
DELETE /workbooks/{workbook_id}/sheets/{sheet_id}/tables/{table_id}
특정 테이블 삭제.
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/tables/{table_id}/update
테이블 데이터 업데이트.
5. 차트(Chart) API
엑셀 차트를 생성하고 관리하는 API.
GET /workbooks/{workbook_id}/sheets/{sheet_id}/charts
특정 시트의 모든 차트 목록 가져오기.
POST /workbooks/{workbook_id}/sheets/{sheet_id}/charts
새 차트 생성.
파라미터 예시:
json
코드 복사
{
"type": "bar",
"range": "A1:B10",
"title": "Sales Chart"
}
DELETE /workbooks/{workbook_id}/sheets/{sheet_id}/charts/{chart_id}
특정 차트 삭제.
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/charts/{chart_id}/update
차트 데이터 또는 스타일 업데이트.
6. 함수(Function) API
엑셀의 기본 함수들을 호출하거나 커스텀 함수를 실행하는 API.
POST /workbooks/{workbook_id}/functions
기본 함수 호출.
파라미터 예시:
json
코드 복사
{
"function": "SUM",
"parameters": [10, 20, 30]
}
응답 예시:
json
코드 복사
{"result": 60}
POST /workbooks/{workbook_id}/custom_functions
사용자 정의 함수 실행.
파라미터 예시:
json
코드 복사
{
"name": "CalculateTax",
"parameters": {"value": 100, "rate": 0.1}
}
7. 실시간 동기화 및 이벤트 API
사용자가 엑셀에서 작업할 때 실시간으로 반영되도록 하기 위한 API.
GET /workbooks/{workbook_id}/events
특정 워크북의 모든 변경 이벤트 조회.
WebSocket 기반 실시간 알림
셀 업데이트, 시트 추가/삭제 등의 실시간 알림을 구독.
예시 이벤트:
json
코드 복사
{
"event": "cell_update",
"range": "A1",
"new_value": 100
}
8. 파일 저장 및 공유 API
엑셀 파일 저장, 다운로드, 공유를 위한 API.
POST /workbooks/{workbook_id}/save
현재 워크북 저장.
GET /workbooks/{workbook_id}/download
특정 워크북 다운로드.
POST /workbooks/{workbook_id}/share
특정 사용자와 워크북 공유.
파라미터 예시:
json
코드 복사
{"user_email": "user@example.com"}
필수 추가 고려 사항
권한 및 보안
엑셀 데이터 접근 시 인증 및 권한 관리 필요(OAuth, JWT).
LLM 통합
사용자가 자연어로 명령을 내릴 경우, 이를 API 요청으로 변환.
예: "A열의 값을 모두 더해줘" → POST /workbooks/1/functions 호출.
확장성
엑셀의 추가 플러그인 및 매크로 기능도 통합 가능하도록 API 설계.