Google Apps Script插入表格图片时报The blob format is unsupported错误
报错原因
你当前代码直接将base64编码的文本字符串传入Utilities.newBlob(),该方法会直接把字符串本身的文本字节写入blob对象,不会自动对base64内容做解码处理,最终生成的blob本质是文本格式文件,不满足insertImage()要求的合法图片二进制格式,因此触发格式不支持的报错。
修复方案
先调用Utilities.base64Decode()将base64字符串解码为图片对应的二进制字节数组,再用解码后的字节数组生成blob对象即可正常插入图片。
修正后的完整代码如下:
var data = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="; // 先解码base64得到二进制字节数组 var decodedBytes = Utilities.base64Decode(data); var ssblob = Utilities.newBlob(decodedBytes,"image/png","MyImage"); Logger.log(ssblob.getBytes().length); Logger.log(ssblob.getName()); Logger.log(ssblob.getDataAsString()); Logger.log(ssblob.getContentType()); var ss = SpreadsheetApp.getActiveSheet(); ss.insertImage(ssblob,4,4);
内容的提问来源于stack exchange,提问作者Dilip Virani
相关产品推荐
相关产品推荐

