Dilip Virani
Dilip Virani

Reputation: 41

Exception: The blob format is unsupported. Google app script

I am running below code in google app script.

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);

Execution Log

5:34:37 PM Notice Execution started 5:34:37 PM Info 116.0 5:34:37 PM Info MyImage 5:34:37 PM Info iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg== 5:34:37 PM Info image/png 5:34:38 PM Error
Exception: The blob format is unsupported.

Upvotes: 2

Views: 1068

Answers (1)

ziganotschka
ziganotschka

Reputation: 26836

  • Your data is base64 encoded
  • newBlob(data) can only create a blob from a byteArray or a string
  • Thus, you need to convert your base64 encoded data to a byteArray first
  • This can be done with Utilities.base64Decode()

Sample:

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);
}

Upvotes: 4

Related Questions