TL;DR
- Visi는 Excel 스프레드시트를 명령줄에서 편집하고 계산하는 도구로, Excel과의 실행 동작 일치와 빠른 처리를 목표로 함.
- Rust로 작성된 visi는 수식 계산, 피벗 테이블, VBA 매크로를 포함해 Excel의 동작을 재현하는 것을 목표로 함.
- 통합 문서와 셀을 조회하고, 수식을 다시 계산하며, 셀 값과 수식을 수정할 수 있음.
- 시트와 행·열을 관리하고, 시트 데이터를 CSV 또는 JSON으로 내보낼 수 있음.
- 실제 Excel과 계산 결과의 값 및 형식을 비교하는 검증 도구를 사용하며, Apache License 2.0과 MIT License로 제공됨.
개요
visi는 Excel 스프레드시트를 편집하고 계산하는 명령줄 인터페이스(CLI) 애플리케이션임.
목표
- 피벗 테이블과 매크로(VBA)를 포함해 Excel의 실행 동작과 100% 일치하는 것을 목표로 함. 일부 상황에서는 수치 정확도가 Excel보다 높음.
- Microsoft 웹 서비스가 필요한 일부 기능은 제외됨.
- Excel과 같은 오류 유형을 재현하는 것을 목표로 하지만, 오류 메시지 자체까지 일치시키지는 않음. 이 부분은
visi가 Excel보다 개선할 가능성이 있음. - 문서화된 차이점이 있음.
- 성능을 우선시하며, 잠재적 성능을 극대화하기 위해 Rust로 작성됨.
- 빠른 시작 시간과 대규모 작업 흐름 처리를 목표로 함.
Visi가 필요한 이유
- 대형 언어 모델(LLM)은 Python의
openpyxl같은 기존 도구를 사용해 스프레드시트를 작성하는 데 유용하지만, 수식 결과를 계산하려면 실제 스프레드시트 애플리케이션이 필요함. - Excel은 스프레드시트 파일을 헤드리스 환경에서 계산하는 용도로 적합하지 않으며, 특히 COM 자동화가 제공되지 않는 비Windows 플랫폼에서 제약이 큼.
visi는 스프레드시트 실행 및 검증 계층을 제공해 이 간극을 메우는 것을 목표로 함.
설치
- macOS와 Linux에서는 Homebrew를 사용해
albert-yu/tap/visi를 설치할 수 있음.
예제
통합 문서 구조 확인
visi info로 시트, 크기, 수식 개수의 요약을 확인할 수 있음.- JSON 출력을 지정해 같은 요약을 JSON 형식으로 받을 수 있음.
시트 내용, 범위, 셀 읽기
visi read로 첫 번째 시트 내용을 터미널의 ASCII 표로 확인할 수 있음.- 시트와 범위를 지정해 특정 영역을 읽을 수 있음.
- 셀을 지정해 계산 결과를 읽거나, 원시 수식을 확인할 수 있음.
- 출력 형식으로 CSV 또는 JSON을 선택할 수 있음.
수식 다시 계산
openpyxl로 작성한 스프레드시트도visi eval로 계산할 수 있음.- 제자리 수정 옵션을 사용하면 입력 파일에 계산 결과를 기록할 수 있음.
- 출력 옵션을 사용하면 원본 통합 문서를 수정하지 않고 계산 결과를 표 형식으로 표준 출력에 표시할 수 있음.
셀 값과 수식 수정
- 시트와 셀을 지정해 셀 값을 설정하고, 결과를 다른 파일로 저장할 수 있음.
- 여러 셀의 값과 수식을 한 번에 설정할 수 있으며, 예시에는 두 셀에 숫자를 넣고 두 셀의 합계와 평균을 계산하는 수식이 포함됨.
- 다른 시트의 셀을 참조하는 수식도 설정할 수 있음.
워크시트 관리
- 시트 목록을 조회하고, 새 시트를 추가하거나 이름을 변경하거나 삭제할 수 있음.
행과 열 조작
- 행과 열 작업에서 0부터 시작하는 오프셋인
--index또는 UI 라벨을 따르는--label을 사용할 수 있음. - 예시에는 첫 위치에 행 삽입, 라벨
1에 해당하는 행 삭제, 라벨C또는 인덱스2에 해당하는 열 삭제가 포함됨.
시트 데이터 내보내기
- 시트를 지정해 데이터를 CSV 또는 JSON 파일로 내보낼 수 있음.
개발
- 모노레포는 다음 구성 요소로 이루어짐.
visi-core: 통합 문서의 수식을 분석하고 실행하는 임베드 가능한 스프레드시트 엔진임.visi:visi-core를 사용해 Excel 파일을 헤드리스 환경에서 편집하고 실행하는 명령줄 애플리케이션임.- Excel 기능과의 동등성을 목표로 실제 Excel 사본을 AppleScript 또는 COM 자동화로 구동하는 검증 하네스를 사용함.
- 계산 결과의 셀 값과 형식이 모두 정확히 일치하는지 비교하며, 자세한 내용은 퍼즈 테스트 관련 문서를 참고하도록 안내함.
LLM 정책
- LLM은 소스 코드 생성에 사용할 수 있음.
- 소스 코드에 LLM이 생성한 주석을 넣을 수 없음.
- 콘텐츠 시작 부분에 명확히 표시하지 않는 한, 산문 작성에 LLM을 사용할 수 없음.
- 커밋 메시지는 전부 LLM이 작성해도 되는 예외임.
AGENTS.md가 이 정책을 자동으로 적용하도록 해야 함.
라이선스
- 다음 두 라이선스로 제공됨.
- Apache License, Version 2.0
- MIT License
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요