自定义函数JSA_A_BASE64STRINGTOBINARYSTRING base64转二进制字符
function JSA_A_BASE64STRINGTOBINARYSTRING(base64String) { //base64String 转 二进制字符串
base64String = base64String.valueOf();
const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
const cleanBase64String = base64String.replace(/^data:.*?;base64,/, ''); //移除可能的base64String前缀和数据URI前缀
if (!/^[A-Za-z0-9+/]*={0,2}$/.test(cleanBase64String)) { //验证base64String格式(简单的格式检查)
throw new TypeError("无效的base64String格式");
}
let binaryString = "";
let chr1, chr2, chr3;
let enc1, enc2, enc3, enc4;
let i = 0;
while (i < cleanBase64String.length) {
enc1 = keyStr.indexOf(cleanBase64String.charAt(i++));
enc2 = keyStr.indexOf(cleanBase64String.charAt(i++));
enc3 = keyStr.indexOf(cleanBase64String.charAt(i++));
enc4 = keyStr.indexOf(cleanBase64String.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
binaryString = binaryString + String.fromCharCode(chr1);
if (enc3 !== 64) { // 64代表'=',填充符1
binaryString = binaryString + String.fromCharCode(chr2);
}
if (enc4 !== 64) { // 64代表'=',填充符2
binaryString = binaryString + String.fromCharCode(chr3);
}
}
return binaryString
}插入函数对话框、函数参数对话框:
加载宏文件function Workbook_Open(){}中添加以下代码。
Application.MacroOptions("JSA_A_BASE64STRINGTOBINARYSTRING", "base64字符串 转 二进制字符串", undefined, undefined, undefined, undefined, 14, undefined, undefined, undefined, ['base64字符串。']);