标签: google-apps-script

自定义Google电子表格功能返回超链接或现有公式

我目前正在以下列格式在Google电子表格中输入超链接:

=HYPERLINK("http://jira.com/browse/ISSUE-12345","ISSUE-12345")
Run Code Online (Sandbox Code Playgroud)

我每次都复制"ISSUE-12345".我想创建一个函数JIRA(12345),它给出与上述超链接相同的结果.有没有办法在脚本中返回一个超链接,例如

function JIRA(jiraNum) {
  // Returns JIRA hyperlink
  var link = ("http://jira.com/browse/ISSUE-"+jiraNum,"ISSUE-"+jiraNum);
  return link;
}
Run Code Online (Sandbox Code Playgroud)

会工作?

google-sheets google-apps-script

11
推荐指数
1
解决办法
3226
查看次数

带有JSON Payload的Google Apps脚本UrlFetchApp

我正在尝试POST一个期望使用Google Apps脚本获取JSON作为有效负载的Web服务.我正在使用以下代码:

var options =
{
  "method" : "post",
  "contentType" : "application/json",
  "headers" : {
    "Authorization" : "Basic <Base64 of user:password>"  
  },
  "payload" : { "endDate": "2012-06-03" }
};

var response = UrlFetchApp.fetch("http://www.example.com/service/expecting/json", options);
Run Code Online (Sandbox Code Playgroud)

在服务器端,我收到以下错误:

WARN [facade.SettingsServlet] 04 Jun 2012 15:30:26 - Unable to parse request body: endDate=2012-06-03
net.liftweb.json.JsonParser$ParseException: unknown token e
Run Code Online (Sandbox Code Playgroud)

我假设服务器期待得到

{ "endDate": "2012-06-03" }
Run Code Online (Sandbox Code Playgroud)

代替

endDate=2012-06-03
Run Code Online (Sandbox Code Playgroud)

但我不知道如何让UrlFetchApp做到这一点.

json google-apps-script

11
推荐指数
1
解决办法
2万
查看次数

需要帮助优化标记电子邮件的Google Apps脚本

Gmail存在一个问题,即会话标签未应用于到达会话线索的新邮件.在这里发布细节

我们发现了一个Google Apps脚本,用于修复Gmail收件箱中各个邮件的标签,以解决此问题.脚本如下:

function relabeller() {
  var labels = GmailApp.getUserLabels();


  for (var i = 0; i < labels.length; i++) {
    Logger.log("label: " + i + " " + labels[i].getName());

    var threads = labels[i].getThreads(0,100);
    for (var j = 1; threads.length > 0; j++) {
      Logger.log( (j - 1) * 100 + threads.length);
      labels[i].addToThreads(threads);
      threads = labels[i].getThreads(j*100, 100);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,由于Google Apps脚本的执行时间限制为5分钟,此脚本会在超过20,000封邮件的邮箱上超时.

任何人都可以建议一种优化此脚本的方法,以便它不会超时?

email gmail gmail-imap google-apps-script

11
推荐指数
2
解决办法
5611
查看次数

单步执行Google Apps脚本中的代码(等效的VBA-GAS)

在编写我的VBA宏时,我经常使用"F8"来逐行调试宏.Google Apps脚本中是否有类似的功能?

debugging vba google-docs google-sheets google-apps-script

11
推荐指数
1
解决办法
1万
查看次数

使用Google应用脚本创建草稿邮件

我想知道是否可以使用Google Apps脚本创建草稿邮件.如果是的话,怎么可能呢?

此致,塞巴斯蒂安

gmail google-apps-script

11
推荐指数
2
解决办法
7674
查看次数

Google Spreadsheet包含来自WebSocket的数据

我想使用Google Apps for Spreadsheet编写一个自定义脚本,该脚本从WebSocket获取数据.有没有办法呢?

google-sheets google-apps-script

11
推荐指数
1
解决办法
2918
查看次数

如何阅读TXT.文件,将内容复制到新文件并替换某些内容

我有一个.txt在线文件,文字如下:

"Type": "Internal",
"Category": 1,
"Presentation": 3,
...
Run Code Online (Sandbox Code Playgroud)

我想使用Apps Script读出该文件的内容,并最终将其保存在具有修改内容的新文件中.具体来说,我需要删除一些内容的下划线,但保持其余内容不变.

google-apps-script google-drive-api

11
推荐指数
1
解决办法
1万
查看次数

Google表格数据透视表未更新

我有一个谷歌应用程序脚本,它将信息提交给有组织的工作表,并希望创建一个包含工作表中所有信息的数据透视表.我可以这样做,但每当我向工作表提交一行新数据时,它都不会自动包含在数据透视表中.每次提交新的数据行时,我都必须手动更改数据透视表的范围.有什么方法可以让sheet/pivot表自动包含新的数据行吗?

pivot-table google-sheets google-apps-script

11
推荐指数
2
解决办法
2万
查看次数

提交Google表单后显示自定义消息

我有一个Google表单,允许用户输入他们的信息.提交表单后,数据会作为新行插入Google电子表格.

但是我想在提交表单后立即显示动态消息,覆盖原始的"谢谢"消息.新消息将显示他们刚填写的信息,并为其分配编号.

例如,玛丽填写了她的数据并提交了表格.由于Mary是第5个提交此表单的人,因此该消息显示她的号码为5.

有没有办法实现这个目标?我一直在研究Google App Script和HTML服务,但我不确定这是否正确.

请注意,我们已经使用电子邮件发送此邮件已有好几年了,但是用户强烈建议在表单提交后立即显示其ID,这将使许多事情变得更加容易.

非常感谢你!

更新

我一直在努力,现在我可以创建一个向电子表格插入新行的网页.但另一个问题:如何发布网页?当我打开"/ dev"链接时,它工作正常; 但是,当我打开"/ exec"链接时,它说找不到"Index.html",我确信有一个名为Index.html的文件.

customization google-apps-script google-forms

11
推荐指数
2
解决办法
4万
查看次数

服务帐户可以调用Google Apps脚本执行API吗?

我想使用服务帐户通过Apps脚本执行API访问Google表格,但是文档中是否支持这一点并不清楚.

我尝试过的步骤(导致Execution API的403状态)是:

  1. 创建一个新的(未绑定的)Apps脚本
  2. 访问链接的Developer Console项目
  3. 启用Execution API
  4. 在同一个项目中创建一个新的服务帐户(下载生成的JSON文件)
  5. 创建一个新的Google表格并与服务帐户的电子邮件地址共享(这是我最不确定的步骤)
  6. 编写一个从电子表格中读取的应用程序脚本函数
  7. 从脚本编辑器手动运行脚本(正确设置脚本的范围)
  8. 发布脚本("部署为API可执行文件"),使"任何人"都可以访问该脚本
  9. 使用服务帐户和链接到脚本的范围提示新的OAuth2令牌(在我们的示例中只是' https://www.googleapis.com/auth/spreadsheets ')
  10. 尝试使用令牌调用Execution API

这是我得到的回应:

{
  "error": {
    "code": 403,
    "message": "The caller does not have permission",
    "status": "PERMISSION_DENIED"
  }
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为服务帐户永远无法访问Execution API吗?或者上面的步骤有问题吗?

google-apps-script service-accounts execution-api

11
推荐指数
3
解决办法
5296
查看次数