自定义函数 JSA_A_BASE64STRINGTOUINT8ARRAY base64转Uint8
function JSA_A_BASE64STRINGTOUINT8ARRAY(base64String) { //base64String 转 Uint8Array
base64String = base64String.valueOf();
const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
base64String = base64String.replace(/^data:.*?;base64,/, ""); //移除DataURL前缀
base64String = base64String.replace(/[^A-Za-z0-9+/=]/g, ""); //移除非法字符
const uint8Array = new Uint8Array(base64String.length * 0.75);
let index = 0;
for (let i = 0; i < base64String.length; i += 4) {
const enc1 = keyStr.indexOf(base64String[i]);
const enc2 = keyStr.indexOf(base64String[i + 1] || "=");
const enc3 = keyStr.indexOf(base64String[i + 2] || "=");
const enc4 = keyStr.indexOf(base64String[i + 3] || "=");
uint8Array[index++] = (enc1 << 2) | (enc2 >> 4);
if (enc3 !== 64) uint8Array[index++] = ((enc2 & 15) << 4) | (enc3 >> 2);
if (enc4 !== 64) uint8Array[index++] = ((enc3 & 3) << 6) | enc4;
}
return uint8Array.slice(0, index)
}插入函数对话框、函数参数对话框:
加载宏文件function Workbook_Open(){}中添加以下代码。
Application.MacroOptions("JSA_A_BASE64STRINGTOUINT8ARRAY", "base64字符串 转 Uint8Array", undefined, undefined, undefined, undefined, 14, undefined, undefined, undefined, ['base64字符串。']);