SpreadsheetApp.insertImage server error

2020-03-30 05:35发布

问题:

Why the below code return 'server error' in GSuite Spreadsheet?

function test() {
  var ss = SpreadsheetApp.openById('1Wc6nKxxxxxxxxxxxxxxxxxx0Ld6QyaY');
  var sheet = ss.getSheetByName('2018.0801-0831');
  var img = DriveApp.getFileById('1qw2uy3cNxxxxxxxxxxxxxxxxxDZRES');
  var imgBlob = img.getBlob();
  sheet.insertImage(imgBlob, 9, 20);
}

The Image is JPEG, 276KB. With an image its size is 173KB, this code is working. Is it possible to insert large imageBlobs?

回答1:

In my experience, when an image is inserted by insertImage(), the limitation is due to the image area (pixels^2) rather than the file size of it. The maximum area of image which can be inserted is 1,048,576 pixels^2.

I have experimented as follows.

  • Image with the following sizes can be inserted.
    • 1024 pixels x 1024 pixels
    • 2048 pixels x 512 pixels
    • 4096 pixels x 256 pixels
  • Image with the following sizes can NOT be inserted.
    • 1025 pixels x 1025 pixels
    • 1024 pixels x 1025 pixels
    • 1025 pixels x 1024 pixels

From these results, I concluded the limitation for inserting image is 1,048,576 pixels^2.

So if the area of image you want to insert is more than 1,048,576 pixels^2, please resize it and try again.

If this was not useful for your situation, I'm sorry.