1. 두 파일을 올리기
상단의 파일 A · 원본 / 파일 B · 수정본 두 드롭존에 XLSX·XLS·CSV·TSV 파일을 드래그하거나 클릭해서 선택합니다. 파일은 절대 업로드되지 않으며, 브라우저 안의 SheetJS(xlsx) 커뮤니티 에디션이 모든 파싱을 처리합니다. 네트워크를 끊어도 동작합니다.
2. 시트 선택
XLSX가 여러 시트를 포함하면 각 드롭존 아래의 시트 선택 드롭다운에서 비교할 시트를 고릅니다. 다른 파일의 다른 시트도 비교 가능합니다(예: A의 "2024" vs B의 "2025").
3. 키 컬럼 이해하기
키 컬럼은 "어떤 셀 값으로 같은 행을 찾을 것인가" 를 정합니다. 예:
- 직원 명부 → 사번(EmpID)
- 상품 목록 → SKU
- 세금계산서 → 공급가액 + 공급받는자 조합(현재 1개 컬럼만 지원)
첫 행이 헤더로 간주되며, A·B 두 파일 모두에 존재하는 컬럼이 드롭다운 맨 위에 먼저 표시됩니다. 같은 키가 한 파일에 여러 번 등장하면 등장 순서대로 1:1 매칭됩니다.
4. 결과 해석
- 노란색 · 변경 — 같은 키의 행이 양쪽에 있으나 일부 셀 값이 다름. 변경된 셀은 진한 노랑으로 표시.
- 초록색 · 추가 — B 파일에만 존재하는 새 행.
- 빨간색 · 삭제 — A 파일에만 존재하던 사라진 행.
상단 배지에는 "N건 변경 · N건 추가 · N건 삭제" 요약이 뜹니다. 결과 테이블은 화면에서는 상위 500행만 렌더링하지만 XLSX·CSV 다운로드는 전체를 포함합니다.
5. 내보내기
결과 XLSX 다운로드는 4개 시트(요약·변경·추가·삭제)로 구성된 파일을 생성합니다.
- Summary — 시트명, 키 컬럼, 카운트 요약.
- 변경 Modified — 키 · 컬럼 · Before(A) · After(B) 4열 형식.
- 추가 Added — B에만 있는 행 전체.
- 삭제 Removed — A에서 사라진 행 전체.
CSV 다운로드는 3개 섹션을 한 파일에 담고, UTF-8 BOM을 넣어 한글 헤더가 엑셀에서 깨지지 않도록 합니다.
6. 병합셀과 수식
병합셀은 좌상단 셀의 값으로 단순화됩니다(엑셀의 기본 동작과 동일). 수식은 계산된 값으로 비교되며, 원본 수식 문자열(=SUM(A1:A10))은 비교되지 않습니다. 수식 자체를 diff 하고 싶다면 엑셀에서 값으로 변환 후 다시 올려 주세요.
7. 대용량 파일
10만 행 이상이면 상단에 경고가 뜨며, 브라우저에 따라 수십 초가 걸릴 수 있습니다. 실무 기준 권장 한계:
- 일반 노트북 — 20만 행 × 30열까지 부드럽게 작동
- 50만 행 이상 — 시트를 쪼개어 2~3회에 나누어 비교하는 것을 권장
8. 한/영 혼재 컬럼명 정규화
A·B 의 컬럼명이 거래일자 / 거래 일자 / 거래일자 (전각 공백) 처럼 다르더라도 자동 정규화(NFKC + trim + 공백 축약 + 소문자) 로 같은 컬럼으로 인식합니다. 다만 영한 번역(Name ↔ 이름)은 자동 매칭되지 않으므로 양쪽 파일에서 헤더를 통일해 주세요.
9. 프라이버시
이 도구는 S3 정적 호스팅이며, 파일을 받을 서버 엔드포인트가 존재하지 않습니다. 개발자도구의 Network 탭을 열고 비교를 실행하면 업로드 트래픽이 0바이트인 것을 직접 확인할 수 있습니다. 한국 공공기관· 기업의 "파일 업로드 금지" 보안 정책 아래에서도 안심하고 쓸 수 있습니다.