Преобразование текста изображения base64 в ячейке в изображение, вставленное в эту конкретную ячейку

скажем, у меня есть ячейка, содержащая текст изображения base64, и я хочу преобразовать его в его фактическое изображение, есть ли способ закодировать это в листе Google?

моя проблема заключалась в том, что я могу превратить его в изображение блоба с фактическим изображением, которое я хочу, но я не знаю, как вставить его в определенную ячейку.

Вот мой код: function insertImageFromBase64Src2() { var data = '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'; var imageBlob = Utilities.newBlob(Utilities.base64Decode(data), 'image/png', 'sample'); // Modified var ss = SpreadsheetApp.getActiveSpreadsheet(); //This code is bound to a Sheet var po = { shName:'Sheet1', column:2, row:2 } var sh = ss.getSheetByName(po.shName); var image = sh.insertImage(imageBlob, po.column, po.row);//Insert an image and return the image }

я ожидаю, что сформированная капля будет вставлена ​​​​внутрь ячейки, а не за пределы ячейки

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если ваши данные base64 являются действительными данными изображения, как насчет их использования с классом CellImage в качестве URL-адреса данных? Когда это отражено в вашем сценарии, получается следующее.

Модифицированный скрипт:

function insertImageFromBase64Src2() {
  var data = '###'; // Your base64 data

  var sheet = SpreadsheetApp.getActiveSheet();
  var image = SpreadsheetApp.newCellImage().setSourceUrl(`data:image/png;base64,${data}`).build();
  sheet.getRange(2, 2).setValue(image);
}
  • Когда я тестировал этот модифицированный скрипт, используя ваши данные base64, я подтвердил, что изображение помещается в ячейку «B2». Это происходит следующим образом.

  • getRange(2, 2) из вашего сценария var po = { shName:'Sheet1', column:2, row:2 }.

Ссылка:

@Padua Эдвард Джозеф Спасибо за ответ и тестирование. Я рад, что ваша проблема была решена. И тебе спасибо.

Tanaike 13.04.2023 13:37

Привет, у меня была другая проблема, код внезапно перестал работать, и я действительно не знаю, почему, хотя я пытался использовать те же данные базы 64

Padua Edward Joseph 18.04.2023 16:39

@Padua Edward Joseph О вашем новом вопросе i had another problem, the code suddenly stopped working and i dont really know why, even though i tried to use the same base 64 data, к сожалению, я не могу его воспроизвести. Когда я тестировал свой скрипт, используя ваши данные base64, я могу получить тот же результат в своем ответе. Я думаю, что это связано с моим плохим мастерством. Я еще раз глубоко извиняюсь за свое слабое мастерство. Но, я хотел бы поддержать вас. Когда я смогу правильно воспроизвести вашу ситуацию, я хотел бы придумать решение. Если вы можете дать мне время, чтобы сделать это, я рад. Вы можете дать мне время, чтобы сделать это?

Tanaike 19.04.2023 00:52

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

Padua Edward Joseph 19.04.2023 03:22

@Padua Edward Joseph Я нашел ваш новый вопрос stackoverflow.com/q/76045925 . И я уже прокомментировал это. Как насчет обсуждения в вашем новом вопросе?

Tanaike 19.04.2023 03:24

Другие вопросы по теме