Excel 파일을 Base64로 변환하는 방법
.xlsx,.xls,.csv파일을 상자에 놓거나 파일 선택 창에서 고르세요.- 출력 형식은 일반 Base64로 시작합니다. 파일 이름, MIME 형식, 크기까지 포함하려면 JSON을 고르세요.
- 출력 복사를 누르거나, 큰 통합 문서라면 .txt로 저장을 누르세요.
어떤 스프레드시트인지 알아보기
| 파일 | Base64 시작 부분 | MIME 형식 |
|---|---|---|
.xlsx, .xlsm | UEsDB (ZIP) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
.xls | 0M8R4KGxGuE (OLE2) | application/vnd.ms-excel |
비밀번호로 보호된 .xlsx | 0M8R4KGxGuE | .xlsx와 같음 |
.csv, BOM 있는 UTF-8 | 77u/ | text/csv |
.csv, BOM 없음 | 텍스트 자체. 예: name,qty와 줄 바꿈은 bmFtZSxxdHkK | text/csv |
data URI와 JSON 출력에는 브라우저가 알려 주는 형식이 쓰입니다. Excel이 설치된 Windows 컴퓨터에서는 시스템이 .csv 파일을 application/vnd.ms-excel로 표시하는 경우가 많습니다. API가 CSV 형식을 엄격하게 검사한다면 직접 text/csv로 바꾸세요.
CSV는 그냥 텍스트입니다
CSV 파일은 일반 텍스트이므로 Base64를 디코딩하면 읽을 수 있는 행이 나옵니다. 그래서 몇 가지 결과가 따릅니다.
- 문자 인코딩이 바이트와 함께 전달됩니다. Excel이 Windows-1252나 EUC-KR(CP949) 같은 레거시 코드 페이지로 저장한 CSV는 받는 쪽이 UTF-8로 가정하면 글자가 깨집니다. 저장할 때는 “CSV UTF-8"을 고르세요.
- 큰 CSV는 gzip이나 ZIP으로 크게 줄어듭니다. API가 압축된 업로드를 받는다면 인코딩 전에 압축할 만합니다.
.xlsx는 이미 ZIP이라 다시 압축해도 거의 줄지 않습니다. - Base64로 받은 CSV를 빠르게 확인하려면 Base64를 CSV로가 디코딩해 텍스트로 보여 줍니다.
스프레드시트가 Base64로 오가는 곳
- JSON 본문으로 통합 문서를 받는 리포트 및 가져오기 API. 예를 들어 상품이나 가격 대량 가져오기.
- 단계 사이에서 파일을 Base64 문자열로 넘기는 자동화 플랫폼. 예를 들어 이메일 첨부 파일을 읽어 스토리지에 올리는 흐름.
- 스프레드시트 첨부 파일을 JSON 필드에 Base64로 넣어 보내는 이메일 발송 API.
- HTML
<a download>출력을 이용한 생성된 HTML의 다운로드 링크. 리포트 페이지가 자기.xlsx를 직접 담을 수 있습니다.
Python으로 인코딩하고 형식 확인하기
import base64
from pathlib import Path
SIGNATURES = {
"UEsDB": "xlsx (ZIP)",
"0M8R4KGxGuE": "xls (OLE2) or encrypted xlsx",
"77u/": "text with a UTF-8 BOM, e.g. CSV UTF-8",
}
def encode_sheet(path):
b64 = base64.b64encode(Path(path).read_bytes()).decode("ascii")
kind = next((v for k, v in SIGNATURES.items() if b64.startswith(k)), "other")
return b64, kind
이런 검사로 흔한 업로드 오류를 잡을 수 있습니다. 실제로는 HTML 오류 페이지인 “스프레드시트"나, .xlsx로 이름만 바꾼 옛 .xls가 그 예입니다. 파일 처리에 대한 자세한 내용은 Python의 Base64에 있고, Base64를 Excel로는 Base64 통합 문서를 미리 보고 파일로 저장합니다.
자주 묻는 질문
XLSX 파일의 MIME 형식은 무엇인가요?
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet입니다. 예전 .xls 형식은 application/vnd.ms-excel, CSV는 text/csv를 씁니다.
CSV의 Base64가 77u/로 시작하는 이유는 무엇인가요?
77u/는 UTF-8 바이트 순서 표시(BOM, EF BB BF)입니다. Excel에서 “CSV UTF-8"로 저장하면 붙습니다. 대부분의 파서는 이를 처리하지만 일부는 첫 번째 열 이름의 일부로 취급하므로, name 같은 헤더가 일치하지 않게 되면 제거하세요.
Excel 파일을 JSON 요청으로 보낼 수 있나요?
네. 일반 Base64로 인코딩해 API 문서에 나온 파일 내용 필드에 넣고, 파일 이름과 MIME 형식을 함께 보내세요. JSON 출력이 그 구조를 보여 줍니다: name, type, size, data.