使用代码将 Google Apps 脚本函数分配给 Google 表格图像

2024-04-26

使用代码将 GOOGLE APPS 脚本功能分配给图像。

通过单击 Google 表格中的图像并选择“分配脚本”选项,就可以实现这一点。

但这是一项手动任务,我想将其自动化。


可以将图像插入 Google 表格并使用 Apps 脚本代码分配函数。

有一个insertImage()Sheet 类的方法和assignScript()可以在图像上运行的方法。

The insertImage()方法需要图像 mime 类型的 blob。要获取 jpeg mime 类型的图像,您可以绘制和图像,将其保存到本地驱动器,将图像上传到 Google 云端硬盘,然后使用代码将图像获取为 blob。

创建图像、将其作为 blob 获取、插入到工作表中并分配函数的步骤

  • 在 Google 表格中单击“插入”,然后单击“绘图”
  • 绘制图像 - 例如看起来像按钮的图像
  • 将图像保存到您的计算机驱动器
  • 在 Google 云端硬盘中,单击“新建”和“文件上传”,然后将图像文件上传到您的 Google 云端硬盘并为其命名
  • 在代码中获取图像文件如下面的测试函数所示
  • 在代码中将图像文件转换为 blob
  • 运行代码以插入图像并分配函数

代码示例:

请注意,直到刷新带有电子表格的浏览器选项卡后,图像才会显示。

function setImage(po) {
try{
  var image,sh,ss;

  /*
    po.blobSource - a blob that is an image file type
    po.column - the column to set the image in
    po.functionName - the name of the function to assign to the image
    po.row - the row to set the image in
    po.shName - the name of the sheet tab
  */

  ss = SpreadsheetApp.getActiveSpreadsheet();//This code is bound to a Sheet
  sh = ss.getSheetByName(po.shName);
  image = sh.insertImage(po.blobSource, po.column, po.row);//Insert an image and return the image

  image.assignScript(po.functionName);//Assign an Apps Script function to the image

  return true;
}catch(e){
  //Logger.log('Error: ' + e.message)
  //Logger.log('stack: ' + e.stack)
  return false;
}
}

function testRun() {
  var blobSrc,contentType,file,files;

  /*
    In a Sheet click Insert and Drawing
    Draw a button
    Save the button to your computer drive
    From Google Drive click "New" and File Upload and upload the file and give it a name
    Get the image file in code as shown in this function
    Convert the image file to a blob
  */

  files = DriveApp.searchFiles('mimeType contains "jpeg" and title contains "Name of File Here"');
  if (files.hasNext()) {
   file = files.next();
  }

  contentType = 'image/jpeg';

  if (file) {
    blobSrc = file.getAs(contentType);
  }

  //Logger.log(blobSrc.getContentType());  

  //Logger.log(blobSrc.getName())
  setImage({shName:'Sheet1',blobSource:blobSrc,row:1,column:1,functionName:'myFunction'});

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用代码将 Google Apps 脚本函数分配给 Google 表格图像 的相关文章

随机推荐

  • 获取表中两组不同行的计数,然后将它们分开

    我对 MySQL 很陌生 我正在尝试提出一个基本上可以执行以下操作的查询 select from tasks where completed 1 除以 select from tasks where completed 0 我已经找到了解决
  • 我可以定义一个具有与每个值的键对应的值约束的 Typescript 映射吗?

    In 这个游乐场 https www typescriptlang org play code KYDwDg9gTgLgBASwHY2FAZgQwMbDgQQCMBnGKHGfbGBCJOAbwCg44YBPMYALjlKmQBzANwtE
  • 由 VBScript 运行的 xPath 中的未知方法

    错误消息是 msxml3 dll 未知方法 Record CelloXml Integration Case ServiceEvent gt last 我的代码如下所示 错误出在案例上NEW Case OLD可以很好地配合 0 在那里 On
  • 为什么 lambda 比 IL 注入动态方法更快?

    我刚刚构建了动态方法 见下文 感谢其他 SO 用户 看起来 Func 创建为动态方法 IL 注入比 lambda 慢 2 倍 有谁知道具体原因吗 编辑 这是在 VS2010 中构建为 x64 版本的 请从控制台而不是从 Visual Stu
  • 添加新的 ApplicationBarMenuItem 图标时无法分配给属性

    我添加了一个新的ApplicationBarMenu带有图标的按钮到我的 wp7 项目中的页面 当尝试运行页面时我得到 无法分配给属性 Microsoft Phone Shell ApplicationBarIconButton Click
  • 为量角器安装特定的 chromedriver

    我在 CircleCi 上运行的 chrome 驱动程序遇到问题 问题是运行时 node modules bin webdriver manager update 然后使用以下命令检查 chromedriver 和 selenium 的版本
  • html中的有什么用?

    看起来它允许您编辑元素的内容 但实际上发生了什么 这个属性有什么用呢 编辑 参见here http www w3 org TR html5 editing html contenteditable 这通常用于富文本输入 虽然常规表单元素如
  • Python 代码中标识符错误中的无效字符

    对于以下代码 我收到 标识符中的无效字符 错误 显示错误时 第 3 行中的 http 会突出显示 我是Python新手 请帮忙 import requests import html r requests get http cricapi
  • “找不到符号:方法”但该方法已声明

    在我的驱动程序中 这一行给了我cannot find symbol错误 我不知道为什么 该方法在SavingsAccount类 我可以引用我的驱动程序中的所有其他方法 但不是那个方法 我尝试将类型更改为double等但仍然无法正常工作 Ac
  • 是否可以在 C# 中观察 Rss feed 变化?

    我想创建一个服务来监听一些 Rss 提要并将新提要解析为 json 以供进一步使用 是否可以观察饲料的变化 如果可以 那么如何观察 thanks 查看System ServiceModel Syndicate SynminationFeed
  • 检查 Laravel 控制器中的多个守卫

    我在 laravel 中创建了三种类型的守卫 我可以检查身份验证用户 但我们有一些对所有用户都相同的路由和控制器 我需要为每种类型的登录用户检查相同路由或控制器中的所有守卫 我的 auth php 文件看起来像这样
  • 如何在ios中以编程方式安排事件?

    我的任务是编写一个应用程序 允许用户安排将来发送的电子邮件 用户从日期选择器中选择日期时间 撰写消息和收件人 然后安排事件 当日期 时间出现时 消息就会被发送出去 有人可以指导我如何安排日程安排吗 比如说短信 我知道如何发送短信 只是不确定
  • AWS lambda 基本身份验证,无需自定义授权者

    我在为用 Node js 编写的 AWS lambda 函数设置基本身份验证时遇到问题 问题 AWS lambda 函数是附加服务的代理 该函数仅转发整个请求并向用户提供整个响应 这就是为什么我需要强制使用Authentication标题
  • 理解同构字符串算法

    我理解以下代码来查找字符串是否同构 该代码使用两个哈希值s dict and t dict分别 我假设字符串的长度相同 def isIsomorphic s t s dict t dict for i in range len s if s
  • Flutter 中使用 BLoC 的异步请求

    我想下载数据 但也一直使用该应用程序 你能告诉我这是否是正确的解决方案 情况是我们按下下载按钮并调用函数 bloc dispatch Event download 在 Download 事件的 mapEventToState 中 我们请求数
  • Python 列表顺序

    在我编写的小脚本中 append 函数将输入的项目添加到列表的开头 而不是该列表的末尾 正如你可以清楚地理解的那样 我对 Python 很陌生 所以对我宽容一些 list append x 将项目添加到列表末尾 相当于a len a x 这
  • 如何捕获按下 HTML5 视频元素的默认全屏按钮时的全屏事件?

    我在使用 HTML5 时遇到问题video标签和iconic 这是我的模板的一部分
  • 将 .aar 和 .jar 文件嵌入库中

    我将创建一个包装许多蓝牙设备 SDK jar 和 aar 文件 的 android 库 aar 此文件无法在 Maven 或替代存储库中发布 点击这些链接 link1 https stackoverflow com a 60888941 5
  • 使用 PHP 将未知行数插入 MySQL

    我正在尝试使用 PHP 将未知数量的行插入到 MySQL 中 它应该是这样工作的 Javascript 解析 HTML DOM 以创建基于 css 类的多维数组 该数组将具有一定数量的行 或子数组 与具有该类的元素数量相对应 这可以是任何
  • 使用代码将 Google Apps 脚本函数分配给 Google 表格图像

    使用代码将 GOOGLE APPS 脚本功能分配给图像 通过单击 Google 表格中的图像并选择 分配脚本 选项 就可以实现这一点 但这是一项手动任务 我想将其自动化 可以将图像插入 Google 表格并使用 Apps 脚本代码分配函数