自定义函数 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字符串。']);

云南省
浏览 23
收藏
1
分享
1 +1
1
+1
全部评论 1
 
497128657
关系图:https://bbs.wps.cn/topic/68275
· 云南省
回复