SpreadsheetApp.insertImage 服务器错误

Ken*_*sui 1 google-sheets google-apps-script

为什么下面的代码在 GSuite 电子表格中返回“服务器错误”?

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);
}
Run Code Online (Sandbox Code Playgroud)

图像为 JPEG,276KB。图像大小为 173KB,此代码有效。是否可以插入大图像块?

Tan*_*ike 5

根据我的经验,当一个图像被插入时insertImage(),限制是由于图像区域(像素 ^ 2)而不是它的文件大小。可插入图像的最大区域为 1,048,576 像素^2。

我进行了如下实验。

  • 可以插入以下尺寸的图像。
    • 1024 像素 x 1024 像素
    • 2048 像素 x 512 像素
    • 4096 像素 x 256 像素
  • 无法插入以下尺寸的图像。
    • 1025 像素 x 1025 像素
    • 1024 像素 x 1025 像素
    • 1025 像素 x 1024 像素

从这些结果中,我得出结论,插入图像的限制是 1,048,576 像素 ^2。

因此,如果您要插入的图像区域超过 1,048,576 像素 ^2,请调整其大小并重试。