标签: google-apps-script

Google Apps 脚本网络应用程序自动链接到最新代码?

我创建了一个 Google Apps 脚本,我已经部署了它Publish > Deploy web app并且我正在使用script.google.com/macros/s/#####/exec?run=ok.

每次我在代码做一个小的修改,我需要重做 Publish > Deploy web app和变革Project versionNew

这有时很烦人,因为对于每个小的修改,您都需要重做。

有没有办法使调用脚本从script.google.com/macros/s/#####/exec?run=ok 自动链接到最新版本的代码?

web-applications google-apps-script

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

我们可以使用谷歌应用程序脚本隐藏工作表中的列吗?

我想与其他人共享工作表,但我也希望他们看不到某些列。有什么办法可以使用谷歌应用程序脚本解决这个问题,或者是否有任何替代选项。谢谢你。

google-sheets google-apps-script

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

Gmail 服务事件?

每当我的收件箱收到新电子邮件时,我都想运行处理功能。我正在查看https://developers.google.com/apps-script/guides/triggers/events。我没有看到在电子邮件到达时触发事件的方法。我错过了什么吗?

gmail google-apps-script

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

Google Apps 脚本 - 日期格式不起作用

我将以下日期21:50:04 Nov 13, 2017 PST作为字符串,我使用以下代码对其进行格式化(仅显示月份和日期)。

Utilities.formatDate(new Date(inData[r][0]), "GMT", 'MMM-dd')
Run Code Online (Sandbox Code Playgroud)

我得到的输出是Nov-14,我尝试更改GMT-05:00仍然产生相同结果的区域。

谁能告诉我我必须做哪些更改才能返回Nov-13相同的输入。

timezone date-formatting google-apps-script

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

在 doPost() 中访问请求头

要验证 webhook,我需要从请求标头中获取参数。到目前为止,如果实际上可以在 Apps Scripts 中访问这些标头,我找不到任何信息。到目前为止唯一有效的是访问发布请求的正文。

function doPost(e) {
    // something like this
    var headerParam = e.headers['Content-Type'];
    // ...
}
Run Code Online (Sandbox Code Playgroud)

google-apps-script

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

谷歌应用程序脚本:来自单元格本身的 setNote()

我想从一个单元格设置注释——注释应该设置为同一个单元格。

我试过这个功能

function setNote(note){
    var note = note;
    var cell = SpreadsheetApp.getActiveSheet().getActiveCell();

    if(note == ""){
        cell.clearNote();
    }else{
        cell.setNote(note);
    }
}
Run Code Online (Sandbox Code Playgroud)

但出现错误You do not have permission to call setNote (line 8),这很明显,因为我无法编辑任何带有“单元格函数”的单元格(在单元格中输入/键入的函数,而不是 GAS/JavaScript 函数本身)。

有没有办法从单元格本身设置注释(使用“单元格函数”)?

我希望能够从单元格内设置单元格值(我已经可以)注释(我还不能),例如 '=if(d4=4, e4, "") & setNote(b4 )` ......或类似的东西。

google-sheets google-apps-script custom-function

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

谷歌脚本在 gmail 插件中使用 html 服务

我尝试在 gmail 插件中创建简单的表单,

如何使用html服务

下面的代码,我试过了,

function buildAddOn(e) {
  var accessToken = e.messageMetadata.accessToken;
  GmailApp.setCurrentMessageAccessToken(accessToken);
  var test_card = doGet()
  cards.push(test_card);
  return cards;
}
function doGet() {
   return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
 }
Run Code Online (Sandbox Code Playgroud)

提前致谢

google-apps-script gmail-addons

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

如何在我的 Google Apps Script/Google Sheets HTML 中包含脚本?

我无法让我的基于 Apps 脚本的 HTML 包含任何脚本。

doGetHtmlService工作正常:

function doGet() {
return HtmlService.createHtmlOutputFromFile('myhtmlfilename');
}
Run Code Online (Sandbox Code Playgroud)

无论我的 HTML 文件上是否有任何脚本标签,我似乎都会得到以下信息:

错误

我曾尝试将我的所有 JavaScript 存储在一个带有标签(称为JavaScript.html)的单独 HTML 文件中,然后使用强制打印脚本将它们重新包含到我的 HTML 中。

我的 HTML 文件包含我的脚本标签:

<script>
function transferItems(){
google.script.run.test();
}

</script>
Run Code Online (Sandbox Code Playgroud)

我将脚本 HTML 包含为 scriptlet 的函数,我也尝试将其作为“getRawContent”而不是“evaluate”:

function include(filename) {
return HtmlService.createTemplateFromFile(filename).evaluate().getContent();
}
Run Code Online (Sandbox Code Playgroud)

我的脚本:

<?!= include('JavaScript'); ?>
Run Code Online (Sandbox Code Playgroud)

我在 code.gs 中的函数称为test()

function test() {
alert("This is a test."); 
}
Run Code Online (Sandbox Code Playgroud)

我的主 HTML 页面中的按钮,我试图通过该按钮调用该test()函数:

<button onClick="transferItems()">Transfer</button>
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,我的页面最终都会在浏览器中将这些 scriptlet 显示为文本。

显示结果

我错过了什么?

我读过的所有答案和教程都来自 2015 …

html javascript google-sheets google-apps-script

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

使用 Apps 脚本以 Excel 格式将 Google Sheet 导出到 Google Drive

我想将我的 Google 电子表格的备份创建到我的 Google Drive 文件夹中,但作为 Excel 文件。我设法创建了一个代码来创建 gsheet 的副本并将其保存到文件夹中,但我无法更改代码以将其保存为 Excel 文件。

你能帮我吗?

function makeCopy() {
  var formattedDate = Utilities.formatDate(new Date(), "CET", "yyyy-MM-dd' 'HH:mm");
  var name = "Backup Copy " + formattedDate;
  var destination = DriveApp.getFolderById("1vFL98cgKdMHLNLSc542pUt4FMRTthUvL");
  var file = DriveApp.getFileById("2SqIXLiic6-gjI2KwQ6OIgb-erbl3xqzohRgE06bfj2c")
  file.makeCopy(name, destination);
}
Run Code Online (Sandbox Code Playgroud)

export-to-excel google-sheets google-apps-script google-sheets-macros

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

使用模式传输获取谷歌表格中两个地址之间的距离

我正在尝试通过模式传输获得 A 和 B 之间的距离。

这是我在谷歌表(excel)上的代码

=importXML("http://maps.googleapis.com/maps/api/directions/json?origin="& A4  & "&destinations=" & D4 & "&mode=transit&arrival_time=1391374800&key=MYKEYHERE"; "//distance/text")
Run Code Online (Sandbox Code Playgroud)

它说“无法调用Url”。我在这个问题上坐了一段时间,我将不胜感激。

其他然后导入 XML 并在代码中说/json?origin我真的不明白这个问题。

编辑:我在文档中找到了这个

<travel_mode>TRANSIT</travel_mode>
    <start_location>
     <lat>40.7563670</lat>
     <lng>-73.9907530</lng>
    </start_location>
    <end_location>
     <lat>40.8179080</lat>
     <lng>-74.0656630</lng>
Run Code Online (Sandbox Code Playgroud)

但我不确定如何在上面的行中输入它。我为目的地和起点做所有的长和纬度。

maps google-maps google-sheets google-apps-script google-sheets-formula

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