Как отображать изображения с Google Диска в ячейке Gsheet? - PullRequest
0 голосов
/ 18 февраля 2020

Я хотел бы легко отобразить изображение в ячейке Gsheet на основе URL-адреса изображения, хранящегося в Gdrive.

Я пробовал использовать функцию Gsheet = IMAGE ("URL"), и она не работает.

Цель состоит в том, чтобы отобразить изображение изображения, как в примере ниже (пример изображения в 5-й строке был сделан вручную)

Example of image displayed

Ответы [ 2 ]

2 голосов
/ 19 февраля 2020
  • Вы хотите поместить изображение с вашего 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=###

Шаблон 2:

Если вы не хотите публиковать изображения, как насчет этого шаблона? В этом шаблоне изображение помещается в виде большого двоичного объекта без общего доступа.

Здесь, пожалуйста, проверьте следующий пример сценария.

Пример сценария:

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». И размер изображения изменяется до 100 х 100 пикселей. Затем размер строки и столбца изменяется для размера изображения.
  • Это простой пример сценария. Поэтому, пожалуйста, измените это для вашей реальной ситуации.

Ссылки:

Если я неправильно понял ваш вопрос, и это не было нужное вам направление, извиняюсь.

Добавлено:

Из вашего ответа было обнаружено, что размер изображения превышает размер ограничения (1,048,576 pixels^2) Ссылка Причина вашего текущего заключается в следующем.

В этом случае, чтобы поместить изображение, требуется изменить размер изображения. В следующем примере сценария изображение помещается путем изменения размера изображения. Для этого я использовал библиотеку скриптов Google Apps. Поэтому , пожалуйста, установите его в редакторе сценариев .

Пример сценария:

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, размер изображения изменяется и помещается в электронную таблицу.
  • Это простой пример сценария. Поэтому, пожалуйста, измените его для вашей реальной ситуации.

Ссылки:

0 голосов
/ 18 февраля 2020

Не выглядит возможным. Должен быть размещен как обычный .jpg где-то. Любопытно, зачем вам нужна ссылка и изображение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...