自定义函数 JSA_A_UINT8ARRAYTOBASE64STRING Uint8转base64

function JSA_A_UINT8ARRAYTOBASE64STRING(uint8Array) {  //Uint8Array 转 base64String
    uint8Array = (Array.isArray(uint8Array.valueOf()) || (uint8Array instanceof Uint8Array)) ? Array.from(uint8Array.valueOf()).flat(Infinity) : [uint8Array.valueOf()];
    const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    let base64String = "";
    
    for (let i = 0; i < uint8Array.length; i += 3) {
        const byte1 = uint8Array[i];
        const byte2 = i + 1 < uint8Array.length ? uint8Array[i + 1] : 0;
        const byte3 = i + 2 < uint8Array.length ? uint8Array[i + 2] : 0;

        const enc1 = byte1 >> 2;
        const enc2 = ((byte1 & 3) << 4) | (byte2 >> 4);
        const enc3 = ((byte2 & 15) << 2) | (byte3 >> 6);
        const enc4 = byte3 & 63;

        base64String += keyStr[enc1] +
                        keyStr[enc2] +
                        (i + 1 >= uint8Array.length ? '=' : keyStr[enc3]) +
                        (i + 2 >= uint8Array.length ? '=' : keyStr[enc4]);
    }
    
    return base64String
}

插入函数对话框、函数参数对话框:

加载宏文件function Workbook_Open(){}中添加以下代码。

Application.MacroOptions("JSA_A_UINT8ARRAYTOBASE64STRING", "Uint8Array 转 base64字符串", undefined, undefined, undefined, undefined, 14, undefined, undefined, undefined, ['Uint8Array,也可以是单行或多行数组。']);

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