我有一个包含多列的Google工作表。我希望将a,b,c,d,e列的值转换为单个base64编码的字符串。
示例:
A1 B1 C1 D1 E1
NewYork Smith Kal T kalk smith@gmail.com 468783778
以上是数据。我想要在F1中进行base64转换 原始数据:
NewYork,Smith,Kal T,kalk,smith@gmail.com,468783778
base64编码:
TmV3WW9yayxTbWl0aCxLYWwgVCxrYWxrLHNtaXRoQGdtYWlsLmNvbSw0Njg3ODM3Nzg
答案 0 :(得分:3)
我将所有列数据合并为一个
NewYork,Smith,Kal T,kalk,smith@gmail.com,468783778
使用以下公式:
=arrayformula(A2:A&", "&B2:B&", "&C2:C&", "&D2:D&", "&E2:E)
然后,我打开脚本编辑器(“工具”->“脚本编辑器”)并向其中写入以下函数BASE64()。将Base64()函数应用于存在以上数据的列,它将进行编码。
/**
* A custom function that encodes or decodes base64.
*
*@param {"R29vZ2xl"} data The string to encode/decode.
*@param {1} encode 1/true = encode (default).0/false = decode.
*@param {1} charsetStr The character set to use. Allowed values are "UTF-8" and "US-ASCII". Defaults to UTF-8.
*@param {0} websafe Whether the output string should be safe for use in URLs or not. Defaults to false.
*@param {0} asString Whether the decoded value should be returned as a string (default) or byte array.
*@result {"Google"} The result to be returned.
*@customfunction
*/
function BASE64(data,encode,charsetStr,websafe,asString) {
if(data==="" || data==null){return "No data"}
if(encode==="" || encode==null){encode=1}
else if(encode != 1 && encode!=0 && encode!= true && encode!= false){return "Encode?";}
if(encode==true){encode=1;}
else if(encode==false){encode=0;}
if(charsetStr==="" || charsetStr==null){charsetStr="UTF-8"}
else if(charsetStr!="UTF-8" && charsetStr!="US-ASCII"){return "Charset?"}
if(charsetStr=="UTF-8" || charsetStr==1){var charset = Utilities.Charset.UTF_8;}
else{var charset = Utilities.Charset.US_ASCII;}
if(websafe==="" ||websafe==null){websafe=0}
else if(websafe != 1 && websafe!=0 && websafe!= true && websafe!= false){return "Websafe?";}
else if(websafe==true){websafe=1;}
else if(websafe==false){websafe=0}
if(asString==="" ||asString==null){asString=1}
else if(asString != 1 && asString!=0 && asString!= true && asString!= false){return "AsString?";}
else if(asString==true){asString=1;}
else if(asString==false){asString=0}
var value;
if(encode==0){
if(websafe==0){
if(asString==0){
value= Utilities.base64Decode(data, charset);
}else{
value= Utilities.newBlob(Utilities.base64Decode(data, charset)).getDataAsString(charsetStr);
}
}else{
if(asString==0){
value= Utilities.base64DecodeWebSafe(data, charset);
}else{
value= Utilities.newBlob(Utilities.base64Decode(data, charset)).getDataAsString(charsetStr);
}
}
}
else{
if(websafe==0){
value= Utilities.base64Encode(data, charset);
}
else{value= Utilities.base64EncodeWebSafe(data, charset);}
}
return value;
}