自定义函数 JSA_A_BTOA 以base64编码字符串

function JSA_A_BTOA(url) { //base64编码
    url = url.valueOf();
    const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    const outputChunks = [];
    const buffer = [];
    
    // 处理完整3字节组
    for (let i = 0; i < url.length; i++) {
        buffer.push(url.charCodeAt(i));
        if (buffer.length === 3) {
            const merged = (buffer[0] << 16) | (buffer[1] << 8) | buffer[2];
            outputChunks.push(
                chars.charAt(merged >> 18 & 0x3F),
                chars.charAt(merged >> 12 & 0x3F),
                chars.charAt(merged >> 6 & 0x3F),
                chars.charAt(merged & 0x3F)
            );
            buffer.length = 0;
        }
    }    

    // 处理剩余字节(1或2字节)
    const remaining = buffer.length;
    if (remaining === 1 || remaining === 2) {
        let merged = buffer[0] << 16;
        if (remaining === 2) merged |= buffer[1] << 8;

        // 前两个字符始终需要生成
        outputChunks.push(
            chars.charAt(merged >> 18 & 0x3F),  // 第一个字符(高6位)
            chars.charAt(merged >> 12 & 0x3F)   // 第二个字符(次高6位)
        );

        // 仅在剩余2字节时生成第三个字符
        if (remaining === 2) {
            outputChunks.push(chars.charAt(merged >> 6 & 0x3F));
        }

        // 添加填充符
        outputChunks.push(remaining === 1 ? '==' : '=');
    }
    
    return outputChunks.join('');
}

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

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

Application.MacroOptions("JSA_A_BTOA", "以base64编码字符串。", undefined, undefined, undefined, undefined, 14, undefined, undefined, undefined, ["URL字符串。"]);

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