相关疑难解决方法(0)

使用 Apps 脚本使用 Base64 编码数据将图像插入 Google 表格

给定 png 文件的一些 Base64 编码数据,如下面图像标签中的示例所示。

<img src="data:image/png;base64,R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7">
Run Code Online (Sandbox Code Playgroud)

我需要根据该insertImage()方法的 Base64 编码数据创建图像 blob。

sheetClass.insertImage(imageBlob, column, row)
Run Code Online (Sandbox Code Playgroud)

文档: Sheets 类 - 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
}
Run Code Online (Sandbox Code Playgroud)

base64 image google-sheets google-apps-script

3
推荐指数
1
解决办法
5671
查看次数

标签 统计

base64 ×1

google-apps-script ×1

google-sheets ×1

image ×1