InsertImage(URL,X,Y)不与谷歌驱动器工作(InsertImage(url,x,y)

2019-10-17 19:51发布

我在谷歌驱动器保存的图像,我希望我的脚本到图像插入到电子表格中。 但是,当我打电话InsertImage(URL X,X)与照片的谷歌云端硬盘网址,我得到一个错误:

We're sorry, a server error occurred. Please wait a bit and try again. 

我怎样才能插入此图片到电子表格?

Answer 1:

这是不可能的使用在谷歌驱动器与InsertImage图像的URL。

还有一个悬而未决的问题这一点,这已经好几年了功能请求。 星它接收更新。

问题145 :insertImage()不与存储在谷歌文档中的图像工作

您将需要将您的图像托管与稳定的URL在外部服务器上。



Answer 2:

其实,你可以使用先进的驱动SDK来获取的任何元数据文件对象需要,包括,例如,selfLink或thumbnailLink。

我写了一个GitHub的要点检索从我们不断保存在谷歌Drive镜像文件的缩略图网址,并自动根据基于从片材部件号的文件名模式插入它们作为图像式到电子表格中。

一旦你的网址,可以建立一个= IMAGE(URL)式与它直接插入图像插入到细胞,其可以是给你更多的有用,或者可以使用insertImage()函数将图像插入到文档的那些漂浮覆盖事情之一。 您可以使用此相同的方法来获取一个二进制的blob,如果你愿意的图像数据本身,而不是只是一个URL引用,而插入到它,但不会对公式工作(仅使用了覆盖insertImage()函数, BLOB版 )。 下面是一个例子谷歌事件4344如何使用UrlFetchApp从文件获得一个图像缩略图:

function getThumbnail(fileId) {
  var file = Drive.Files.get(fileId);
  return UrlFetchApp.fetch(file.thumbnailLink).getBlob();
}

如果你只想要的链接,只留下断getBlob()函数。 如果你想完整大小的图片,请尝试selfLink属性。 如果您想了解更多细节,请参见我的要点 。

这绝对是一个解决办法,所以我不知道这是否会继续工作,或者如果谷歌最终将在未来提供一个合理的实现。 但是请注意,你需要激活驱动器SDK在脚本文件下的资源:高级谷歌服务,并在开发者控制台 。 如果它不工作,确保在脚本项目的项目ID匹配,在控制台项目相关的一个。 我不得不实际创建控制台一个新的项目,并重新设置该ID在脚本相匹配。



Answer 3:

其实这是很容易做到的。 就谷歌公用文件夹驱动器置于图像那里,然后用http://googledrive.com/folders_id/image_name.jpg得到它。 告诉我,如果它不工作



文章来源: InsertImage(url,x,y) doesn't work with Google Drive