【问题标题】:Insert Image into Spreadsheet Cell from Drive using Google Apps Script使用 Google Apps 脚本将图像从云端硬盘插入电子表格单元格
【发布时间】:2016-12-07 14:53:34
【问题描述】:

我希望能够从 Google 云端硬盘将图像文件添加到我的电子表格中。我看到有一个可用的内置图像功能=image,但这需要一个 URL,并且图像文件应该在互联网上公开共享。但是,我正在使用数字资产,无法公开分享。

我有以下代码,它可以工作,但不会添加到所需的单元格中。这有可能吗?

function insertImageFromDrive(){
 
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  var fileId = '0B5UAkV0avfiKNGYtd1VzUzlsTVk';
  var img = DriveApp.getFileById(fileId).getBlob();
 
  
  sheet.insertImage(img, 4, 3)
}

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    尝试使用来自 App Script 的指南 Insert image in a spreadsheet

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

    只需替换必要的值。您指示插入图像的单元格的部分:

    sheet.insertImage(blob, 1, 1);
    

    【讨论】:

      【解决方案2】:

      有一个谷歌电子表格插件 ImageKit 可以帮助插入来自不同来源的多个图像,包括谷歌驱动器,检查一下 >https://chrome.google.com/webstore/detail/imagekit/cnhkaohfhpcdeomadgjonnahkkfoojoc 在这里您可以找到工具界面的屏幕截图。

      【讨论】:

      • 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。
      • @baduker 感谢您的提醒,这是 chrome 商店中该插件的链接,我添加了一个屏幕截图以提供有关该工具的更多信息。
      【解决方案3】:

      【讨论】:

        【解决方案4】:

        如果驱动器映像文件未在您的 google 驱动器上公开,这是不可能的,话虽如此,有一个技巧可以克服 i.

        首先确保图像文件在您的驱动器上是临时公开的。您也可以通过应用脚本将文件权限更改为DriveApp.Access.ANYONEDriveApp.Permission.EDIT。然后驱动器文件就像一个文件,就好像它来自互联网一样。然后,您可以添加 Blob。

        之后,您可以决定两件事。 更改权限或从驱动器中删除图像文件(如果您只想使用嵌入到您的 blob 中的图像文件(如果需要,也可以通过应用程序脚本代码)

        祝你好运

        【讨论】:

          【解决方案5】:

          这是另一种选择:

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

          只需确保您的文件已打开链接共享(知道链接的任何人都可以查看),否则此方法将不起作用。

          Documentation

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-02-11
            • 2015-09-11
            • 2023-02-10
            • 2019-11-11
            • 2017-02-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多