如何将Excel中的PNG转为Base64?求非VBA替代方案
批量将PNG转为Base64的高效方案(无需VBA)
既然VBA对你来说上手困难,推荐几个更简单、更适合批量处理的方案,同时针对你的网页上传场景给点优化建议:
1. Python 批量转换脚本(推荐,易扩展)
Python语法简单,处理批量文件和关联员工信息的成本很低,适合新手快速上手。
示例代码(关联员工信息)
假设你有一份包含企业、员工姓名等信息的CSV表,且图片命名规则为「员工姓名.png」:
import base64 import os import csv # 替换成你的实际路径 png_folder = "C:/员工照片/" employee_info_csv = "C:/员工信息表.csv" output_csv = "C:/带Base64的员工信息.csv" # 定义输出表头 output_headers = ["企业", "员工姓名", "交通方式", "照片Base64"] # 读取员工基础信息 with open(employee_info_csv, "r", encoding="utf-8") as f: employee_list = list(csv.DictReader(f)) # 批量转换图片并写入结果 with open(output_csv, "w", encoding="utf-8", newline="") as f: writer = csv.DictWriter(f, fieldnames=output_headers) writer.writeheader() for emp in employee_list: img_path = os.path.join(png_folder, f"{emp['员工姓名']}.png") if os.path.exists(img_path): # 读取图片二进制并转Base64 with open(img_path, "rb") as img_file: base64_str = base64.b64encode(img_file.read()).decode("utf-8") emp["照片Base64"] = base64_str else: emp["照片Base64"] = "未找到对应照片" writer.writerow(emp)
使用步骤:
- 安装Python(官网下载安装即可,勾选Add Python to PATH)
- 把上述代码里的路径替换成你的实际路径
- 打开命令行,进入代码所在目录,运行
python 脚本名.py
2. PowerShell 快速批量转换(Windows用户无需额外安装)
如果你是Windows用户,直接用PowerShell就能完成批量转换,适合不需要关联员工信息的场景:
# 替换成你的图片文件夹路径 $pngFolder = "C:/员工照片/" $outputTxt = "C:/图片Base64结果.txt" # 遍历所有PNG,转换并写入结果 Get-ChildItem -Path $pngFolder -Filter *.png | ForEach-Object { $base64Content = [Convert]::ToBase64String([IO.File]::ReadAllBytes($_.FullName)) Add-Content -Path $outputTxt -Value "$($_.Name): $base64Content" }
使用步骤:
- 打开PowerShell,把代码粘贴进去,替换路径后回车运行
- 结果会保存在指定的TXT文件中,每行对应一个图片的文件名和Base64编码
针对网页上传场景的优化建议
Base64编码会让图片体积增加约30%,如果你的图片数量多、体积大,更优的方案是直接上传图片文件,而不是转Base64:
- 后台直接接收图片文件,存储在服务器或云存储
- 把图片的存储路径关联到员工信息中,网页展示时直接通过路径加载图片
- 这种方式省去了两次转码(Base64→图片)的步骤,更节省带宽和服务器资源,效率更高
内容的提问来源于stack exchange,提问作者黃嘉丞
相关产品推荐
相关产品推荐

