【问题标题】:Exception: The blob format is unsupported. Google app script例外:不支持 blob 格式。谷歌应用脚​​本
【发布时间】:2021-10-30 22:37:32
【问题描述】:

我在谷歌应用脚​​本中运行下面的代码。

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 信息 MyImage 下午 5:34:37 信息 iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg== 下午 5:34:37 信息图片/png 下午 5:34:38 错误
例外:不支持 blob 格式。

【问题讨论】:

标签: javascript google-apps-script blob


【解决方案1】:
  • 您的数据采用 base64 编码
  • newBlob(data) 只能从 byteArraystring 创建 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);
}

【讨论】:

    猜你喜欢
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多