Insert Image into Spresheet Cell from Drive using Google Apps Script

后端 未结 5 1103
名媛妹妹
名媛妹妹 2020-12-06 08:29

I would like to be able to add an image file into my spreadsheet from Google Drive. I see there is a built-in image function available =image, but this requires a URL and

相关标签:
5条回答
  • 2020-12-06 08:35

    Try using the guide Insert image in a spreadsheet from App Script:

    function insertImageOnSpreadsheet() {
      var SPREADSHEET_URL = 'INSERT_SPREADSHEET_URL_HERE';
      // Name of the specific sheet in the spreadsheet.
      var SHEET_NAME = 'INSERT_SHEET_NAME_HERE';
    
      var ss = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
      var sheet = ss.getSheetByName(SHEET_NAME);
    
      var response = UrlFetchApp.fetch(
          'https://developers.google.com/adwords/scripts/images/reports.png');
      var binaryData = response.getContent();
    
      // Insert the image in cell A1.
      var blob = Utilities.newBlob(binaryData, 'image/png', 'MyImageName');
      sheet.insertImage(blob, 1, 1);
    }
    

    Just replace the necessary values. The part where you indicate which cell you insert the image is in:

    sheet.insertImage(blob, 1, 1);
    
    0 讨论(0)
  • 2020-12-06 08:40

    There is a google spreadsheet add-on ImageKit to help insert multiple images from difference sources including Google Drive, check it out > https://chrome.google.com/webstore/detail/imagekit/cnhkaohfhpcdeomadgjonnahkkfoojoc Here you find a screenshot of tool's interface. imagekitAddon

    0 讨论(0)
  • 2020-12-06 08:51

    Here's another alternative that doesn't involve blobs:

    var fileId = "...";
    sheet.insertImage("https://docs.google.com/uc?id=" + fileId, column, row);
    

    Just make sure your file has link sharing turned on otherwise this method won't work.

    Documentation

    0 讨论(0)
  • 2020-12-06 08:59

    It is not possible if the drive image file is not public on your google drive, Having said that there is a trick to overcome i.

    First make sure the image file is temporary public on your drive. you can do that also via app script by changing the file permissions to DriveApp.Access.ANYONE, DriveApp.Permission.EDIT. Then the drive file is like a file as if it was from the internet. You can then add the blob.

    After that you can decide two things. Change the permissions back or remove the image file from your drive (if you only want to use it embedded in your blob (also via app script code if you want)

    good luck

    0 讨论(0)
  • 2020-12-06 09:00

    I don't think it is currently possible, see here: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3303

    0 讨论(0)
提交回复
热议问题