将图像从Google云端硬盘插入Google表格


11

如何将Google云端硬盘中某个文件夹中现有的图像插入/链接到Google表格电子表格中?

有image()函数,我想使用它像这样:

image("googledrive://somefodleringoogledrivewithmypics/pic_1.png")

怎么样?

更新:有人指出,通过将图片上传到Picasa,我们可以获取每张图片的URL并使用它。有用。这样做的缺点是我们必须复制所有图像的每个URL。我将其放在单独的工作表中,然后使用VLOOKUP获取每个索引的每个图像URL。它可以工作,但是如果您有很多图像,则URL复制部分是一件难事。需要更好的解决方案。

Answers:


5

简短答案

虽然目前可以将存储在Google云端硬盘中的文件用作网站资源,但它不受官方支持,并且不应用于使用寿命超过2016年8月31日的网站和电子表格

正如AE I在对一个相关问题的回答中所提到的那样,https://docs.google.com/uc?export=view&id=FILE_ID没有记录使用的使用情况,并且可以在没有事先获得正式通知的情况下随时停止工作,但是目前(2019年2月)仍然可以使用。

说明

有关将Google Drive文件作为网站内容进行发布的说明,请参见发布网站内容-Google Drive REST API,但根据 Google Drive中不赞成使用网络托管的支持-Google Apps开发者博客

从2015年8月31日开始,将不再支持用户和开发人员在Google云端硬盘中托管网络。您可以继续使用此功能一年,直到2016年8月31日为止,届时我们将通过googledrive.com/host/[doc id]停止提供内容。


4

我编写了两行脚本来使用Google云端硬盘中图像的共享链接。

  1. 转到工具>脚本编辑器。
  2. 复制,粘贴以下代码
  3. 单击运行以获得许可

    function DRIVE_IMAGE(link){
        prefix_url = "https://docs.google.com/uc?export=download&";
        link.replace("open?", "uc?export=download&");
    }
    

使用脚本:

  1. 将图片的共享链接复制到Google云端硬盘中。
  2. 进入牢房
  3. 输入公式

    =IMAGE(DRIVE_IMAGE("COPIED_LINK"))
    

该脚本不起作用-错误是“ TypeError:无法调用未定义的方法“ replace”。(第3行,文件“ Code”))(抱歉,脚本对我来说是一种魔术,所以我不能提供更多信息)这次)
cduston

@cduston您是否遵循了步骤?
鲁本

得到与@cduston相同的错误
Vikram Garg,

3
  1. 您需要制作一个电子表格。
  2. 然后转到工具>脚本编辑器。
  3. 您可以剪切/粘贴以下脚本,替换默认情况下放入的所有内容。
  4. 您需要在显示THIS_SHOULD_BE_YOUR_FOLDER_ID的位置添加文件夹ID(保留引号)。
  5. 保存。
  6. 点击播放/运行按钮
  7. 您需要在询问时授予它运行的权限。

那应该做。这里输出的工作示例。

/* modified from @hubgit and http://stackoverflow.com/questions/30328636/google-apps-script-count-files-in-folder 
for this stackexchange question http://webapps.stackexchange.com/questions/86081/insert-image-from-google-drive-into-google-sheets by @twoodwar
*/
function listFilesInFolder(folderName) {

   var sheet = SpreadsheetApp.getActiveSheet();
   sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Image"]);


//change the folder ID below to reflect your folder's ID (look in the URL when you're in your folder)
    var folder = DriveApp.getFolderById("THIS_SHOULD_BE_YOUR_FOLDER_ID");
    var contents = folder.getFiles();

    var cnt = 0;
    var file;

    while (contents.hasNext()) {
        var file = contents.next();
        cnt++;

           data = [
                file.getName(),
                file.getDateCreated(),
                file.getSize(),
                file.getUrl(),
                "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
                file.getDescription(),
                "=image(\"https://docs.google.com/uc?export=download&id=" + file.getId() +"\")",
            ];

            sheet.appendRow(data);



    };
};

3
我可能已经回答过了:)-URL将是https://docs.google.com/uc?export=download&id=FILE_ID
Tom Woodward


2

最好的简单方法是使用替代公式,并在此处有两列,其解释如下:

Column A5: just put google drive image shareable link e.g.
"https://drive.google.com/open?id=1CfUnvGGdt96irA419HnU0BvRafD4F_os"

Column B5: use the combination of two formula image and substitute like this:
=image(substitute(A5,"open?id","uc?export=download&id"))

说明这将把google图像间接图像文件转换为直接链接,并根据需要提供图像结果。

屏幕截图:

在此处输入图片说明

在此处输入图片说明


1

您可以通过链接到Google绘图的URL来执行此操作,步骤如下:

  1. 在Google云端硬盘中创建新图形(在Google云端硬盘中的任何文件夹中,右键单击“更多”,“图形”)
  2. 将您的图像粘贴在那里
  3. File -> Publish to web -> As Link,开始发布
  4. 复制提供的URL并转到要插入的Google表格单元格
  5. =image("URL you copied")

它确实复制了数据,所以您不是链接到实际图像,而是链接到具有该图像副本的Google绘图。任何人都可以访问该链接并以任何受支持的格式(JPEG,PNG,SVG或PDF)下载。


救生员,谢谢!
post_ahead

0

我从(Zeeshan)那里得到了以上答案,并将其组合到一个单元格中。

将其输入到单元格中:

=image(substitute("https://drive.google.com/open?id=1cmtBYSbobv3FYpKKBCPvS","open?id","uc?export=download&id"))

替换"https://drive.google.com/open?id=1cmtBYSbobv3FYpKKBCPvS"为您的“共享链接”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.