Base64를 Excel 파일로 디코딩하는 방법
- Base64 또는 data URI에 Base64를 붙여넣으세요.
data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,같은 접두사는 그대로 둬도 됩니다. 텍스트로 저장된 긴 내보내기 파일은 .txt 파일 열기를 사용하세요. - 표 위에 “첫 번째 시트: “Invoices” (통합 문서 내 3개)“처럼 시트 이름이 나옵니다. 표 위쪽에는 열 문자가, 옆에는 시트 자체의 행 번호가 붙으므로, 앞쪽 행이 비어 있더라도 17행은 Excel에서도 17행입니다.
- 표 아래 항목 목록에는 통합 문서의 모든 파트가 보기와 저장 버튼과 함께 표시됩니다.
- 파일 다운로드를 눌러 .xlsx를 저장하세요.
시트를 읽는 데 Excel이나 추가 기능은 필요 없습니다. 페이지가 브라우저 안에서 통합 문서의 압축을 풀고 XML을 파싱하며, Content Security Policy가 Cloudflare 조회수 집계 외에는 네트워크 요청을 허용하지 않으므로 데이터는 기기에 남습니다.
미리보기에 셀 값이 표시되는 방식
표는 Excel의 숫자 서식 없이 각 셀에 저장된 값을 보여 줍니다. 내보내기 파일을 확인할 때는 대개 이것이 필요한 정보지만, 몇몇 셀은 Excel과 다르게 보입니다.
| Excel의 셀 | 미리보기 표시 |
|---|---|
| 텍스트 | 텍스트 |
25%, $1,234.50 | 저장된 숫자: 0.25, 1234.5 |
15/01/2025 | 날짜 일련번호: 45672 |
12:00 | 하루의 비율: 0.5 |
241로 보이는 =C2*2 | 파일에 저장된 결과 241 |
TRUE, FALSE | TRUE, FALSE |
#DIV/0! | #DIV/0! |
| 병합된 셀 | 왼쪽 위 셀의 값만 |
일련번호를 날짜로 바꾸려면 1899년 12월 30일에 그만큼의 일수를 더하세요. datetime(1899, 12, 30) + timedelta(days=45672)는 2025년 1월 15일이 됩니다. 오래된 Mac용 Excel의 설정인 1904 날짜 체계를 쓰는 통합 문서는 대신 1904년 1월 1일부터 셉니다.
수식 결과는 파일을 만든 프로그램이 저장한 경우에만 나타납니다. Excel과 LibreOffice는 저장하지만, 일부 라이브러리는 결과 없이 수식만 쓰므로 그런 셀은 비어 보입니다.
미리보기에는 제한이 있습니다. 통합 문서 순서상 첫 번째 시트(숨겨져 있거나 다른 탭이 활성 상태였더라도 가장 왼쪽 탭)를 최대 200행, 30열(A부터 AD까지)까지 읽습니다. 그보다 많으면 “최대 200행 × 30열까지 표시합니다.“라는 안내가 나옵니다. 차트, 이미지, 메모, 서식은 표시하지 않습니다.
XLSX, XLS, CSV, 그 밖의 형식
| Base64 시작 부분 | 파일 | 해야 할 일 |
|---|---|---|
UEsDB | XLSX 또는 다른 ZIP 기반 파일 | XLSX와 XLSM은 미리보기가 작동합니다 |
0M8R4KGxGuE | 레거시 .xls(Excel 97–2003) 또는 비밀번호로 보호된 .xlsx | 도구가 “XLSX 형식으로 보이지 않습니다"라고 알리고 DOC/XLS/MSG (OLE)로 감지합니다. 둘을 구별하지 못하며 확장자는 xlsx로 남습니다. 레거시 통합 문서라면 xls를 입력하고, 보호된 파일이라면 xlsx를 유지하세요 |
77u/ | UTF-8 바이트 순서 표시가 있는 텍스트, 대개 CSV 내보내기 | Base64를 CSV로를 참고하세요 |
PD94bWwg | XML(<?xml ), Excel 2003 XML 스프레드시트일 수 있음 | 확장자 xml로 저장하세요. Excel에서 열립니다 |
ZIP 기반 변형 두 가지는 주의가 필요합니다. 매크로가 있는 통합 문서에는 xl/vbaProject.bin이 들어 있습니다. 미리보기는 정상적으로 되지만 Excel은 .xlsx 확장자로는 열기를 거부하므로, 다운로드 전에 xlsm을 입력하세요. 바이너리 통합 문서(.xlsb)는 시트를 XML 대신 .bin 파일에 담습니다. 도구는 여전히 XLSX로 부르고 항목을 나열하지만 표는 보여 주지 않으며, xlsb로 저장해야 합니다.
통합 문서 대신 CSV가 오면 “XLSX이(가) 아니라 CSV(으)로 보입니다.“라는 안내와 함께 .csv(으)로 다운로드 버튼이 나옵니다. Excel은 둘 다 엽니다.
Base64 스프레드시트가 나오는 곳
리포팅과 회계 API는 생성한 내보내기 파일을 JSON 안의 Base64 필드로 돌려줍니다. 자동화와 로우코드 플랫폼은 단계 사이에 파일을 Base64 문자열로 넘기는 경우가 많고, 이메일은 스프레드시트 첨부 파일을 Base64 MIME 파트로 담습니다. 반대로 통합 문서를 문자열로 바꾸려면 Excel을 Base64로를 사용하세요.
Python에서 Base64 통합 문서 읽기
openpyxl 패키지를 쓰면 디코딩한 바이트에서 바로 통합 문서를 읽을 수 있습니다.
import base64, io
from openpyxl import load_workbook
with open("export.b64") as f:
raw = base64.b64decode(f.read())
wb = load_workbook(io.BytesIO(raw), data_only=True)
ws = wb.worksheets[0]
for row in ws.iter_rows(values_only=True):
print(row)
data_only=True는 수식 대신 저장된 수식 결과, 즉 미리보기에 표시되는 값을 돌려줍니다. 미리보기와 달리 openpyxl은 날짜에 숫자 서식을 적용하므로, 위의 셀은 datetime(2025, 1, 15, 0, 0)으로 나옵니다. 더 많은 디코딩 방법은 Python에서 Base64에 있습니다.
자주 묻는 질문
Base64를 Excel 파일로 바꾸려면 어떻게 하나요?
위에 문자열을 붙여넣고 파일 다운로드를 누르세요. 통합 문서는 인코딩된 바이트 그대로 decoded.xlsx로 저장되므로 수식, 서식, 모든 시트가 온전히 유지됩니다.
날짜가 45672 같은 숫자로 보이는 이유는 무엇인가요?
Excel은 날짜를 1899년 12월 30일부터 지난 일수로 저장하고 화면에서만 날짜 서식을 입힙니다. 미리보기는 저장된 값을 보여 줍니다. 45672는 2025년 1월 15일이며, 파일을 Excel에서 열면 다시 날짜로 표시됩니다.
다른 시트도 볼 수 있나요?
표에는 첫 번째 시트만 나옵니다. 다른 시트는 xl/worksheets/sheet2.xml 등으로 목록에 표시되며, 보기를 누르면 원시 XML이 나옵니다. 거기서 텍스트 셀은 xl/sharedStrings.xml을 가리키는 숫자입니다.
Excel에서 파일 형식이나 확장자가 잘못되었다고 합니다. 왜 그런가요?
확장자가 내용과 맞지 않기 때문입니다. 매크로가 있는 통합 문서(xl/vbaProject.bin 포함)는 .xlsm으로, OLE로 감지된 레거시 통합 문서는 .xls로 저장해야 합니다. 확장자에 올바른 값을 입력하고 다시 다운로드하세요.