例外:不支持 blob 格式。 Google 应用脚本

Exception: The blob format is unsupported. Google app script

我 运行 在 google 应用程序脚本中的代码下方。

var data = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";

var ssblob = Utilities.newBlob(data,"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);

执行日志

5:34:37 下午通知执行开始 5:34:37下午信息116.0 5:34:37 PM 信息 MyImage 5:34:37 PM 信息 iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg== 5:34:37 下午信息 image/png 5:34:38 PM 错误
异常:不支持 blob 格式。

  • 您的数据是 base64 编码的
  • newBlob(data) 只能从 byteArray or a string
  • 创建 blob
  • 因此,您需要先将 base64 编码数据转换为 byteArray
  • 这可以通过 Utilities.base64Decode()
  • 来完成

样本:

function myFunction() {
  var data = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
  let bytes = Utilities.base64Decode(data);
  let ssblob = Utilities.newBlob(bytes, "image/png", "yourImage");
  Logger.log(bytes.length);
  Logger.log(ssblob.getName());
  Logger.log(ssblob.getDataAsString());
  Logger.log( ssblob.getContentType());
  var ss = SpreadsheetApp.getActiveSheet();
  ss.insertImage(ssblob,4,4);
}