Google apps script 将图像从驱动器添加到图纸

Google apps script 将图像从驱动器添加到图纸,google-apps-script,google-sheets,google-drive-api,Google Apps Script,Google Sheets,Google Drive Api,我想创建一个签名png文件保存在G驱动器中,并将其粘贴到带有菜单项的单元格中。我已将图像设置为public,并尝试使用共享URL,但添加=image或以编程方式执行此操作都不起作用。我尝试过互联网上的各种代码,到目前为止都没有成功。最后一次尝试代码已列出 function mysig() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var rng = sheet.

我想创建一个签名png文件保存在G驱动器中,并将其粘贴到带有菜单项的单元格中。我已将图像设置为public,并尝试使用共享URL,但添加=image或以编程方式执行此操作都不起作用。我尝试过互联网上的各种代码,到目前为止都没有成功。最后一次尝试代码已列出

function mysig() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var rng = sheet.getRange(34,6);
  var url = "https://drive.google.com/file/d/id/view?usp=sharing"
  var fetch_img = UrlFetchApp.fetch(url);
  var blob = fetch_img.getBlob();
  Logger.log(fetch_img.getBlob())
  sheet.insertImage(blob, 6, 34);

}

使用驱动器应用程序生成google驱动器映像的blob。请参阅以下代码

function insertImage() {
  var openSpreadSheet = SpreadsheetApp.openById("spreadSheetID").getSheetByName("Sheet1");
  var getImageBlob = DriveApp.getFileById("GooglDriveImageID").getBlob();//0B5JsAY8jN1CoNjlZR2tUUHpISFE
  openSpreadSheet.insertImage(getImageBlob,2,2,100,200); //insertImage(blob, column, row, offsetX, offsetY)
}
编辑2:使用图像公式-匹配单元格大小

function insertImage() {
  var openSpreadSheet = SpreadsheetApp.openById("spreadSheetID").getSheetByName("Sheet1");
  var url = "https://docs.google.com/uc?export=download&id=0B5JsAY8jN1CoNjlZR2tUUHpISFE";
  openSpreadSheet.getRange(5, 3).setFormula('=image("'+url+'",2)')
} 
  • =图像(“URL”)–图像在增大/减小单元格大小的同时保留纵横比

  • =图像(“URL”,2)-图像拉伸以适合单元格的所有边缘

  • =图像(“URL”,3)-图像保留其原始大小

  • =图像(“URL”,4,50,50)-通过用所需尺寸替换50,50来设置图像的大小


看看这个,它可能会对您有所帮助。我也经历过这个过程,但它也不起作用。仅使用电子表格中的=IMAGE函数和驱动器中图像的URL也不起作用。太棒了!有没有办法像使用=IMAGE函数那样通过单元格大小来限制图像的大小?我看到了偏移量x和d offsety欢迎使用堆栈溢出。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。这只会将其从原始单元格引用偏移100 x 200,不会调整图像大小以匹配单元格大小。感谢您提供的信息。无论是通过编程还是将其作为公式硬写入单元格,这都不起作用。I我不确定这是否得到支持,因为interwebz上的所有帖子都非常旧。明白了,我的URL不好。我想我现在已经整理好了,谢谢你的耐心,