Вставьте изображение с Google Drive в Google Sheets

11

Как вставить / связать изображения, находящиеся в папке на Google Диске, в электронную таблицу Google Sheets?

Есть функция image (), я думаю, что использую ее примерно так:

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

Как?

Обновление. Некоторые люди отметили, что, загружая изображения в Picasa, мы можем получить URL каждого изображения и использовать его. Оно работает. Недостатком этого является то, что мы должны копировать каждый URL всех изображений. Я помещаю это на отдельный лист, затем использую VLOOKUP, чтобы получить URL каждого изображения для индекса. Это работает, но копирование URL-адресов - это адская работа, если у вас, конечно, много изображений. Нужно лучшее решение.

Jonny
источник

Ответы:

5

Короткий ответ

Хотя в настоящее время можно использовать файлы, хранящиеся на Google Диске, в качестве ресурсов веб-сайта, они официально не поддерживаются и не должны использоваться для веб-сайтов и электронных таблиц , срок службы которых превышает 31 августа 2016 года.

Как упомянул А.Е. I в своем ответе на связанный вопрос, использование https://docs.google.com/uc?export=view&id=FILE_IDне задокументировано и может прекратить работу в любое время без предварительного официального уведомления, но в настоящее время (февраль 2019 г.) оно все еще работает.

объяснение

Инструкции по публикации файлов Google Диска в качестве содержимого веб-сайта приведены в разделе «Опубликовать содержимое веб-сайта - API Google REST API», но в соответствии с устаревшей поддержкой веб-хостинга в «Диск Google» - Блог разработчиков Google Apps

Начиная с 31 августа 2015 года, веб-хостинг в Google Drive для пользователей и разработчиков будет объявлен устаревшим. Вы можете продолжать использовать эту функцию в течение одного года до 31 августа 2016 года, когда мы прекратим показ контента через 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 Drive.
  2. Перейти в камеру
  3. Введите формулу

    =IMAGE(DRIVE_IMAGE("COPIED_LINK"))
    
Bhacaz
источник
Этот скрипт не работает - ошибка "Ошибка типа: невозможно вызвать метод" replace "из неопределенного. (Строка 3, файл" Код ")" (Извините, скриптинг для меня - это магия, поэтому я не могу предложить больше на этот раз)
cduston
@cduston Вы следовали за шагами?
Рубен
Получение той же ошибки, что и @cduston
Викрам
3
  1. Вам нужно будет сделать электронную таблицу.
  2. Затем перейдите в инструменты> редактор сценариев.
  3. Вы можете вырезать / вставить скрипт ниже, заменяя все содержимое, которое было вставлено по умолчанию.
  4. Вам нужно добавить идентификатор вашей папки, где написано THIS_SHOULD_BE_YOUR_FOLDER_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
Том Вудворд
См. Ответ @AEI -> webapps.stackexchange.com/a/89112/88163
Рубен
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

Вы можете сделать это, связавшись с URL-адресом чертежа Google, выполнив следующие действия:

  1. Создайте новый чертеж на Google Диске (щелкните правой кнопкой мыши в любой папке на Google Диске, «Еще», «Рисование»)
  2. вставьте туда свое изображение
  3. File -> Publish to web -> As Link, Начните Публиковать
  4. Скопируйте предоставленный URL и перейдите в ячейку Google Sheet, которую хотите вставить
  5. =image("URL you copied")

Он дублирует данные, поэтому вы ссылаетесь не на фактическое изображение, а на чертеж Google, на котором есть копия изображения. Любой может перейти по этой ссылке и скачать в любом из поддерживаемых форматов (JPEG, PNG, SVG или PDF).

user34612
источник
Спасатель жизни, спасибо!
post_ahead
0

Я взял приведенный выше ответ (Зеешан) и соединил его в одной камере.

Введите это в клетку:

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

Замените "https://drive.google.com/open?id=1cmtBYSbobv3FYpKKBCPvS"на вашу "Общедоступную ссылку"

LaPorte
источник