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