自定义函数 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,也可以是单行或多行数组。']);