Как получить «изображение в ячейке» из электронной таблицы и скопировать его в документ как INLINE_IMAGE? - PullRequest
0 голосов
/ 09 июня 2019

Я настроил электронную таблицу в качестве БД для хранения информации, подобной каталогу. Важным элементом этой информации является изображение, которое конечный пользователь вставляет в пользовательский лист с помощью пункта меню Google Spreadsheet «Вставка -> Изображение -> Изображение в ячейке». Затем это изображение копируется в лист хранения с помощью «SpreadsheetApp.CopyPasteType.PASTE_VALUES» в сценарии.

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

Я искал в Интернете решение, но ничего не получил. Наиболее близким я нашел двухлетний похожий вопрос без прямого ответа: как скопировать ИЗОБРАЖЕНИЕ из электронной таблицы Google в документ Google в сценарии?

Моя логика говорит, что если я вставил изображение в ячейку как значение, я смогу вернуть его с помощью .getValue (), но, очевидно, это не так. Я попытался получить это как каплю без удачи. Я не слишком знаком с каплями, поэтому, вероятно, я сделал это неправильно.

Любая идея будет высоко ценится:)

// This is the code I used to put the image in the cell (THIS WORKS, JUST FOR CONTEXT)
  var fotosToCopy = cotizador.getRangeByName('CotizacionFotos');
  fotosToCopy.copyTo(destino.getRange(fila,2), 
  SpreadsheetApp.CopyPasteType.PASTE_VALUES, true);

// This is the code I'm trying to get the image from the cell (NOT WORKING)
  var fotosToCopy = origen.getRange(personajeRow,2).getValue(); //I've tried .getFormula() with no results; origen is the search range, personajeRow is the row to do the search and both work.

// This is what I'm using to put the image in the document
  var doc = DocumentApp.openById(cotizacionId); // cotizacionId is working
  var body = doc.getBody();
  var foto = body.getImages(); // I'll replace the only existing image
  var parent = foto[0].getParent();
  parent.insertInlineImage(parent.getChildIndex(foto)+1, fotosToCopy[0]); //fotosToCopy[0] is the issue, it returns "undefined"
  foto[0].removeFromParent();

В идеале существующее встроенное изображение в документе должно быть заменено изображением в ячейке из электронной таблицы. Я получаю сообщение об ошибке: «Ошибка выполнения: невозможно преобразовать массив в элемент».

Есть идеи?

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