我想根据Gdrive中存储的图像的URL在Gsheet单元上轻松显示图像。
我尝试使用Gsheet函数= IMAGE(“ URL”),但它不起作用。
目标是显示图像,如下例所示 (第5行中的图片示例是手动完成的)
答案 0 :(得分:2)
如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。
在这种模式下,使用=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=###")
放置在一起。如果您不想公开共享图像,该模式如何?在这种模式下,图像将作为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);
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。
从您的回复中发现,图像尺寸超出了限制尺寸(1,048,576 pixels^2
)Ref。
在这种情况下,为了放置图像,需要调整图像的大小。以下示例脚本通过调整图像大小来放置图像。为此,我使用了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).
这对我有用