上传文件
  1. base64hub
  2. 文件工具
  3. Excel 转 Base64

Excel 转 Base64

拖入 .xlsx、.xls 或 .csv 文件,即可复制它的 Base64,或包含文件名、类型和大小的 JSON 对象。适用于报表 API、自动化平台以及通过 JSON 发送的附件。

免费 无需注册,不限次数 本地 不上传任何内容 更新于 2026年10月27日
将文件拖到这里、粘贴或选择文件
输入 –输出 –大小 –

在你的浏览器中处理。此页面无法将你的数据发送到任何地方: 我们如何确认

如何把 Excel 文件转为 Base64

  1. 把 .xlsx、.xls 或 .csv 文件拖到框中,或用文件选择器选择。
  2. 输出为 默认是 纯 Base64。选择 JSON 可以同时包含文件名、MIME 类型和大小。
  3. 按 复制输出;工作簿较大时可以用 另存为 .txt。

这是哪种表格?

文件Base64 开头MIME 类型
.xlsx、.xlsmUEsDB(ZIP)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xls0M8R4KGxGuE(OLE2)application/vnd.ms-excel
有密码保护的 .xlsx0M8R4KGxGuE与 .xlsx 相同
.csv,带 BOM 的 UTF-877u/text/csv
.csv,无 BOM就是文本本身,例如 name,qty 加一个换行符是 bmFtZSxxdHkKtext/csv

data URI 和 JSON 输出使用浏览器报告的类型。在装有 Excel 的 Windows 电脑上,系统经常把 .csv 文件标记为 application/vnd.ms-excel。如果 API 对 CSV 的类型要求严格,请手动改为 text/csv。

CSV 只是文本

CSV 文件是纯文本,所以它的 Base64 解码后就是可读的数据行。这带来几点影响:

  • 字符编码随字节一起传输。Excel 用传统代码页(例如 Windows-1252)保存的 CSV,如果接收方按 UTF-8 解析,就会出现乱码。保存时尽量选“CSV UTF-8”。
  • 大的 CSV 用 gzip 或 ZIP 压缩后会小很多;如果 API 接受压缩上传,值得在编码前先压缩。.xlsx 本身就是 ZIP,再压缩一次几乎省不了空间。
  • 收到 Base64 形式的 CSV 想快速看一眼,可以用 Base64 转 CSV,它会解码并以文本显示。

表格以 Base64 传输的场景

  • 在 JSON 请求体中接收工作簿的报表和导入 API,例如批量导入商品或价格。
  • 在各步骤之间以 Base64 字符串传递文件的自动化平台,例如读取邮件附件再上传到存储。
  • 邮件发送 API:表格附件以 Base64 形式放进 JSON 字段。
  • 生成的 HTML 中的下载链接:使用 HTML <a download> 输出,让报表页面自带 .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 之类的表头突然匹配不上,就把它去掉。

可以在 JSON 请求中发送 Excel 文件吗?

可以。把文件编码为纯 Base64,放进 API 文档规定的文件内容字段,再附上文件名和 MIME 类型。JSON 输出展示了这种结构:name、type、size 和 data。