엑셀 to JSON 변환 방법 총정리 - 온라인 도구부터 파이썬 판다스까지 상황별 완벽 가이드
엑셀 데이터를 웹이나 앱에서 쓰려면 JSON 변환이 필수입니다. 설치 없이 쓰는 온라인 도구부터 대량 파일을 처리하는 파이썬 방법까지, 한글 깨짐 없이 변환하는 법을 정리했습니다.
![]()
거래처에서 받은 엑셀 파일을 웹사이트나 앱에 넣어야 하는데, 개발자가 JSON 형식으로 달라고 해서 당황한 경험이 있으신가요? 아니면 직접 만든 사이드 프로젝트에 엑셀로 정리해 둔 데이터를 올리고 싶은데 방법을 몰라 검색하다 오셨을 수도 있습니다. 엑셀 to JSON 변환은 알고 보면 어렵지 않습니다. 상황에 맞는 도구만 고르면 5분 안에 끝납니다.
엑셀 데이터를 JSON으로 변환해야 하는 이유
JSON은 웹과 앱에서 데이터를 주고받을 때 사실상 표준으로 쓰이는 형식입니다. 엑셀의 표 형태 데이터는 JSON으로 바꾸면 다음과 같은 구조가 됩니다.
[{"이름":"김민수","부서":"영업팀","연차":3}, {"이름":"이서연","부서":"개발팀","연차":5}]
첫 행의 열 이름이 각 항목의 키(key)가 되고, 아래 행들이 하나씩 객체로 변환되는 방식입니다. 변환이 필요한 대표적인 상황은 이렇습니다.
- 웹사이트나 앱에서 표시할 데이터를 API로 제공해야 할 때
- 자바스크립트 차트 라이브러리에 데이터를 넣을 때
- 데이터베이스에 대량 데이터를 가져오기(import) 할 때
- 노코드 툴이나 자동화 도구에 데이터를 연결할 때
실제로 대출 계산기 같은 웹 계산 도구들도 금리 기준표나 상환 방식 데이터를 JSON으로 관리하는 경우가 많습니다. 엑셀로 정리한 원본을 JSON으로 변환해 서비스에 올리는 흐름이 일반적입니다.
설치 없이 쓰는 온라인 변환 도구
가장 빠른 방법은 온라인 변환 사이트입니다. 구글에 "excel to json converter"로 검색하면 TableConvert, ConvertCSV 같은 무료 사이트가 여러 개 나옵니다. 엑셀 파일을 업로드하거나 셀 범위를 복사해서 붙여넣으면 즉시 JSON 결과를 보여줍니다.
온라인 도구의 장점과 한계
장점은 명확합니다. 설치가 필요 없고, 회원가입 없이 쓸 수 있는 곳이 대부분이며, 결과를 바로 복사할 수 있습니다. 다만 한계도 분명합니다. 파일 크기 제한이 있는 곳이 많고, 수십 개 파일을 반복 처리하기에는 비효율적입니다.
엑셀 자체 기능으로 변환하기
엑셀에는 JSON을 바로 내보내는 메뉴가 없습니다. 하지만 두 가지 우회 방법이 있습니다.
1. 수식으로 JSON 문자열 만들기
데이터가 적다면 TEXTJOIN이나 CONCAT 함수로 각 행을 JSON 객체 문자열로 조립할 수 있습니다. 예를 들어 A열에 이름, B열에 부서가 있다면 ="{""이름"":"""&A2&""",""부서"":"""&B2&"""}" 같은 수식으로 한 행씩 만드는 방식입니다. 열이 많아지면 수식이 복잡해지므로 10열 이하의 간단한 표에 적합합니다.
2. Office Scripts 활용 (Microsoft 365)
Microsoft 365 구독자라면 자동화 탭의 Office Scripts로 시트 데이터를 JSON으로 내보내는 스크립트를 작성할 수 있습니다. 타입스크립트 기반이라 진입 장벽이 있지만, 한 번 만들어 두면 버튼 클릭 한 번으로 반복 사용이 가능합니다.
파이썬 판다스로 대량 파일 처리하기
파일이 많거나 정기적으로 변환해야 한다면 파이썬 판다스(pandas)가 가장 확실한 방법입니다. 코드 세 줄이면 끝납니다.
import pandas as pddf = pd.read_excel("data.xlsx")df.to_json("result.json", orient="records", force_ascii=False, indent=2)
여기서 옵션 두 개가 핵심입니다. orient="records"는 행 단위 객체 배열로 만들어 주는 옵션이고, force_ascii=False는 한글이 유니코드 이스케이프 문자로 깨지는 것을 막아 줍니다. 엑셀 파일을 읽으려면 openpyxl 패키지도 함께 설치해야 합니다.
변환 도구 선택보다 중요한 것은 원본 엑셀의 데이터 구조입니다. 첫 행에 열 이름이 한 줄로 깔끔하게 정리되어 있고 병합 셀이 없으면, 어떤 도구를 쓰든 한 번에 변환됩니다. 변환이 자꾸 실패한다면 도구가 아니라 원본부터 점검하세요.
변환할 때 자주 겪는 문제와 해결법
변환 자체는 쉽지만 실무에서는 세부적인 문제로 시간을 잡아먹는 경우가 많습니다. 대표적인 3가지를 짚어 보겠습니다.
- 한글 깨짐: 결과 파일이 유니코드 코드(\uc774 같은 형태)로 나오면 인코딩 옵션 문제입니다. 판다스에서는 force_ascii=False, 파일 저장 시에는 UTF-8 인코딩을 지정하면 해결됩니다.
- 날짜가 숫자로 변환: 엑셀은 날짜를 내부적으로 일련번호(예: 46000)로 저장합니다. 변환 전에 해당 열을 텍스트 형식으로 바꾸거나, 판다스에서 날짜 열을 문자열로 변환한 뒤 내보내야 합니다.
- 병합 셀 데이터 누락: 병합된 셀은 첫 칸에만 값이 있고 나머지는 빈 값으로 변환됩니다. 변환 전에 병합을 해제하고 값을 채워 넣어야 합니다.
변환한 JSON 데이터를 API 요청의 URL 파라미터로 전달할 때도 주의할 점이 있습니다. 한글과 중괄호 같은 특수문자는 그대로 넣으면 요청이 실패하므로 퍼센트 인코딩이 필요합니다. 이럴 때는 URL 인코더 같은 무료 도구에 붙여넣고 인코딩된 결과를 사용하면 됩니다.
상황별 최적 방법 정리
지금까지 소개한 방법을 상황별로 정리하면 다음과 같습니다.
| 방법 | 난이도 | 설치 필요 | 추천 상황 |
|---|---|---|---|
| 온라인 변환 도구 | 매우 쉬움 | 없음 | 민감하지 않은 데이터, 1회성 변환 |
| 엑셀 수식 | 보통 | 없음 | 10열 이하 간단한 표, 엑셀 안에서 해결 |
| Office Scripts | 어려움 | M365 구독 | 같은 형식 파일의 반복 변환 |
| 파이썬 판다스 | 보통 | 파이썬 | 대량 파일, 민감 데이터, 정기 자동화 |
정리하면 이렇습니다. 오늘 한 번만 변환하면 되는 공개 데이터라면 온라인 도구로 5분 안에 끝내세요. 회사 데이터이거나 매주 반복되는 작업이라면 파이썬 코드 세 줄을 저장해 두는 것이 장기적으로 훨씬 빠릅니다. 지금 바로 변환할 파일의 첫 행 열 이름과 병합 셀부터 확인해 보시기 바랍니다. 그것만 정리해도 변환 실패의 절반은 사라집니다.