Учитывая некоторые данные в кодировке base64 для файла png, как в примере ниже из тега изображения.
<img src="data:image/png;base64,R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7">
Мне нужно создать большой двоичный объект изображения из данных в кодировке base64 для метода insertImage()
.
sheetClass.insertImage(imageBlob, column, row)
Документация: Класс листов - метод insertImage
Я пытался использовать приведенный ниже код, но он выдает ошибку:
Ошибка выполнения: ошибка при получении изображения с URL-адреса или неверного URL-адреса
В документации указано, что для этого метода требуется BLOB-объект, а не URL-адрес, но похоже, что он ожидает ссылку на файл изображения.
function insertImageFromBase64Src() {
var data = 'R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7';
var imageBlob = Utilities.newBlob(Utilities.base64Decode(data), 'image/png').getBytes();
var ss = SpreadsheetApp.getActiveSpreadsheet();//This code is bound to a Sheet
var po = {
shName:'Update File',
column:1,
row:37
}
var sh = ss.getSheetByName(po.shName);
var image = sh.insertImage(imageBlob, po.column, po.row);//Insert an image and return the image
}