如何在Gsheet单元上显示来自Google云端硬盘的图像?

时间:2020-02-18 18:42:12

标签: google-apps-script google-sheets google-sheets-formula

我想根据Gdrive中存储的图像的URL在Gsheet单元上轻松显示图像。

我尝试使用Gsheet函数= IMAGE(“ URL”),但它不起作用。

目标是显示图像,如下例所示 (第5行中的图片示例是手动完成的)

Example of image displayed

3 个答案:

答案 0 :(得分:2)

  • 您要将图像从Google云端硬盘中放入Google电子表格中。
  • 您想使用Google Apps脚本实现这一目标。

如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。

模式1:

在这种模式下,使用=IMAGE("URL")放置图像。

使用=IMAGE("URL")时,需要公开共享图像。因此,请与公开共享的图片共享为On - Anyone with the link

而且,请按如下所示修改端点。

发件人:

https://drive.google.com/open?id=###

收件人:

https://drive.google.com/uc?export=download&id=###
  • 在这种情况下,可以在公开共享图像后将图像与=IMAGE("https://drive.google.com/uc?export=download&id=###")放置在一起。

模式2:

如果您不想公开共享图像,该模式如何?在这种模式下,图像将作为Blob放置而不公开共享。

在这里,请检查以下示例脚本。

示例脚本:

var fileId = "###";  // Please set the file ID of the image.

var sheet = SpreadsheetApp.getActiveSheet();
var blobSource = DriveApp.getFileById(fileId).getBlob();
var image = sheet.insertImage(blobSource, 1, 1);
image.setWidth(100).setHeight(100);
sheet.setColumnWidth(1, 100).setRowHeight(1, 100);
  • 运行脚本时,图像将放置在单元格“ A1”中。并且图像尺寸被调整为100 x 100像素。然后,将行和列的大小更改为图像大小。
  • 这是一个简单的示例脚本。因此,请根据您的实际情况对此进行修改。

参考文献:

如果我误解了您的问题,而这不是您想要的方向,我深表歉意。

已添加:

从您的回复中发现,图像尺寸超出了限制尺寸(1,048,576 pixels^2Ref

在这种情况下,为了放置图像,需要调整图像的大小。以下示例脚本通过调整图像大小来放置图像。为此,我使用了Google Apps脚本库。 please install it to the script editor

示例脚本:

var fileId = "###";  // Please set the file ID of the image.

var sheet = SpreadsheetApp.getActiveSheet();
var blobSource = DriveApp.getFileById(fileId).getBlob();
var obj = ImgApp.getSize(blobSource);
var height = obj.height;
var width = obj.width;
if (height * width > 1048576) {
  var r = ImgApp.doResize(fileId, 512);
  blobSource = r.blob;
}
var image = sheet.insertImage(blobSource, 1, 1);
image.setWidth(100).setHeight(100);
sheet.setColumnWidth(1, 100).setRowHeight(1, 100);
  • 在此示例脚本中,当图像大小大于1,048,576 pixels^2时,将调整图像大小并将其放置到电子表格中。
  • 这是一个简单的示例脚本。因此,请根据您的实际情况对其进行修改。

参考文献:

答案 1 :(得分:0)

看起来不太可能。需要在某个地方作为普通.jpg托管。很好奇,为什么您需要链接和图像?

答案 2 :(得分:0)

=image("https://drive.google.com/uc?export=download&id="&right(A2;33);1). 

这对我有用