csv-table-diff-by-key
표를 위치가 아니라 키 열로 비교합니다. 타입을 구분한 셀 변경과 행·열의 추가와 삭제를 알려 줍니다.
어떤 문제를 푸나The problem
내보낸 파일은 행과 열의 순서가 바뀌곤 합니다. 위치 기준 비교는 전부 달라졌다고 말하지만 키 기준 비교는 실제로 바뀐 것만 말합니다. 키의 타입도 구분해서(1과 '1'은 다른 행) 숫자가 텍스트로 바뀐 실수를 숨기지 않고, 열이 추가되거나 사라진 구조 변화도 셀 변경과 따로 보고합니다.
이런 분께 맞습니다Who it is for
두 시점의 데이터 내보내기를 비교하는 개발자.
무엇을 하나What it does
- diffTables(before, after, keyColumn)이 변경 목록을 돌려줍니다.
- 행·열·셀 단위로 added, removed, modified를 구분합니다.
- 키가 비었거나 중복되면, 행 길이가 다르거나 스칼라가 아닌 셀이 있으면 오류입니다.
직접 돌려 본 출력Real output
저장소의 examples 폴더를 실행한 결과입니다.
$ node examples/quickstart.mjs
{"kind":"column","column":"price","type":"removed"}
{"kind":"column","column":"note","type":"added"}
{"kind":"cell","key":"a","column":"price","type":"removed","before":10}
{"kind":"cell","key":"a","column":"note","type":"added","after":"new"}
{"kind":"cell","key":"b","column":"price","type":"removed","before":20}
{"kind":"cell","key":"b","column":"stock","type":"modified","before":0,"after":3}
{"kind":"cell","key":"b","column":"note","type":"added","after":""}
--- keys are typed: 1 and "1" are different rows
row:removed cell:removed cell:removed row:added cell:added cell:added
알아둘 한계Limits
- 이미 파싱된 배열을 받습니다. CSV나 XLSX 파싱, 수식 계산, 서식 비교는 하지 않습니다.
받아서 쓰기Get it
# 저장소를 받습니다
git clone https://github.com/Kein-chronicle/csv-table-diff-by-key.git
# Claude Code 스킬로 쓰려면 이 폴더 이름으로 받습니다
git clone https://github.com/Kein-chronicle/csv-table-diff-by-key.git ~/.claude/skills/keyed-table-diff
정보Info
- 분류Category
- 문서·데이터 라이브러리Document & data libraries
- 형태Type
- 라이브러리Library
- 라이선스License
- MIT
- 필요한 것Requires
- Node.js 22 이상
- 저장소Repository
- csv-table-diff-by-key
- 토픽Topics
difftablecsvspreadsheetdata-comparisonjavascriptesmzero-dependencies
2026-10-18 기준: 저장소의 테스트를 로컬에서 실행해 통과했고, 예제 출력은 저장소의 examples 폴더를 실제로 실행한 결과입니다.