标签: google-apps-script

使用应用程序脚本在过滤器视图之间切换

我想创建一个带有项目的自定义菜单,以在特定工作表的过滤器视图之间切换。有什么办法吗?由于排序和过滤,我仍然需要过滤器视图,但仍保留编辑选项。由于这个事实,筛选器功能不起作用。

google-sheets google-apps-script google-sheets-filter-view

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

Gmail.Users.Messages.remove(me,id) - 未找到错误

有没有人发现高级Gmail服务电话

`Gmail.Users.Messages.remove(me, id)`
Run Code Online (Sandbox Code Playgroud)

现在出错了?有人有修复吗?

我有一个可靠的脚本,每隔几个小时删除一次垃圾邮件和垃圾邮件.自从2月21日左右开始,即使传递了有效的线程ID,它也会给出错误"Not Found".

这是脚本.我添加了一些日志消息

function deleteForever() {
  var threads = GmailApp.getSpamThreads(0, 100);
  var me = Session.getActiveUser().getEmail();
  for (var i = threads.length -1; i >=0; i--) {
     var thisid=threads[i].getId();
        Logger.log("Removing thread " +i + ' of ' + threads.length + " from Spam with ID = " + thisid);

    try {
    var thisthread=GmailApp.getThreadById(thisid);
    Logger.log("Found the thread.");
    Gmail.Users.Messages.remove(me, thisid);
    }catch(err) {
     Logger.log("Error " + err.message);
    };

  }
  Logger.log("Finished removing " + threads.length + " threads from Spam.");

  var threads …
Run Code Online (Sandbox Code Playgroud)

api gmail google-apps-script

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

Google Apps脚本中是否可以设置行高以适合数据

在Google表格中,选择一系列行并右键单击其中的一行后,“行高”下有一个适合数据的选项。我想在脚本中执行此操作。

我所有的搜索都拒绝,但我充满希望。列被很好地覆盖了,但行似乎没有被覆盖。

谢谢。

google-apps-script google-sheets-api

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

如何使用appscript访问电子邮件的日期/时间

在此输入图像描述

我正在看我的收件箱,我可以看到电子邮件被记录的时间,但我很难看到如何获取电子邮件的日期/时间,尽管查看了应用程序脚本gmail API(https:/ /developers.google.com/apps-script/reference/gmail/gmail-app?hl=ja#detailed-documentation)

可以这样做吗?

gmail google-apps-script

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

使用google工作表将行标题名称添加到行列

在此输入图像描述

是否可以将列标题从A,B更改为名称,电子邮件?然后您可以利用电子表格的本机排序功能.

google-sheets google-apps-script

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

仅复制和粘贴值和格式-Google脚本

我只想复制和粘贴值和格式,而不是公式。

EG(A1是动态文本):

A1 =“测试”

A2 = = A1

我想使用一个脚本,该脚本在激活时将A2格式和文本(在这种情况下,将“ test”复制而不是“ = a1”)复制到A3。

我尝试使用“ formatOnly:true,contentsOnly:true”-但它会不断复制公式。

function Threebrow() {  
   var sheet2 = SpreadsheetApp.getActive().getSheetByName('c');
  sheet2.getRange("a2").copyTo(sheet2.getRange(sheet2.getLastRow()+1,1,1,7), {formatOnly:true , contentsOnly:true});
}
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script

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

Google App Script中的类似SQL的查询功能可从Google表格中提取数据

我正在尝试构建一个Google Apps脚本网络应用程序,该应用程序将从Google表格中提取数据并在浏览器的HTML页面中以行和列显示它们。

通过遵循示例等,我编写了此代码!

function doGet(){
return HtmlService
       .createTemplateFromFile('Report3')
       .evaluate();
}

function getData(){

var spreadsheetId = '1Z6G2PTJviFKbXg9lWfesFUrvc3NSIAC7jGvhKiDGdcY';
var rangeName = 'Payments!A:D';

var values = Sheets
             .Spreadsheets
             .Values
             .get(spreadsheetId,rangeName)
             .values;
return values;

}
Run Code Online (Sandbox Code Playgroud)

通过以下HTML模板提取位于A,B,C,D列中的数据并正确显示

<? var data = getData(); ?>
    <table>
      <? for (var i = 0; i < data.length; i++) { ?>
        <tr>
          <? for (var j = 0; j < data[i].length; j++) { ?>
            <td><?= data[i][j] ?></td>
          <? } ?>
        </tr>
      <? } ?>
    </table>
Run Code Online (Sandbox Code Playgroud)

与其从A,B,C,DI获取所有行和所有列,不如运行SQL查询以使用WHERE子句(如SQL)检索某些列。我了解在电子表格中起作用的= QUERY()函数在GAS内部不起作用。所以我的下一个尝试是通过使用getBatch方法来检索某些行..这就是我得到错误的地方

在这种情况下,我想排除C列,仅获取A,B和D,E引发错误的代码如下:

function getData2(){ …
Run Code Online (Sandbox Code Playgroud)

sql sqlite google-apps-script google-sheets-api

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

在网络应用中注册在线服务工作者

我想将Web推送通知添加到由应用脚本托管的Web应用中。为此,我需要注册服务工作者,并且遇到跨域请求错误。原始内容来自,*.googleusercontent.com而脚本URL为script.google.com/*

通过使用通过脚本创建的内联URL上的这篇文章,我能够成功创建内联工作器blob。现在,我陷入了在浏览器中注册工作人员的问题。

以下模型适用:

的HTML

<!-- Display the worker status -->
<div id="log"></log>
Run Code Online (Sandbox Code Playgroud)

服务人员

<script id="worker" type="javascript/worker">
  self.onmessage = function(e) {
    self.postMessage('msg from worker');
  };
  console.log('[Service Worker] Process started');

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

内联安装

<script>
  function log(msg) {
    var fragment = document.createDocumentFragment();
    fragment.appendChild(document.createTextNode(msg));
    fragment.appendChild(document.createElement('br'));

    document.querySelector("#log").appendChild(fragment);
  }

  // Create the object with the script
  var blob = new Blob([ document.querySelector("#worker").textContent ]);

  // assign a absolute URL to the obejct for hosting
  var worker = new Worker(window.URL.createObjectURL(blob)); …
Run Code Online (Sandbox Code Playgroud)

javascript google-apps-script web-notifications service-worker

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

Google AppScript gmail扩展错误:"您无权调用fetch"

对于我的公司,我正在通过AppScript开发一个gmail扩展.

这个扩展必须通过Ajax调用从另一个服务器检索信息,我正在尝试UrlFetchApp.fetch.

所以,情况就像这样:

我有一个按钮,当点击时触发以下功能(非常基本...仅用于测试):

function call(){
 var response = UrlFetchApp.fetch("https://www.google.com/");
 Logger.log(response.getContentText());
}
Run Code Online (Sandbox Code Playgroud)

然后,出现这个错误:You do not have permission to call fetch (line 116, file "Code").

似乎问题在于函数的权限.该扩展程序保存在谷歌驱动器中,我正在使用"gmail开发人员模式"进行测试.你有什么主意吗?

谢谢 :)

permissions gmail google-apps-script

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

我如何使用基于2个匹配值的数组的setValue()?

我应该首先让你知道我是JS的极端新手.我的背景几乎完全在SQL/VBA中.因此,无论是编码还是Stack Overflow礼仪,您都可以提供任何提示.

问题背景: 我有一个脚本用于从Google表单回复发送出站电子邮件,托管在Google表格中并设置为OnFormResponse().通常,我只被要求从HTML模板电子邮件中的表单响应中发回特定信息.但是,我现在的业务案例是我需要从另一个工作表中查找值,其中相邻列的值与表单响应值匹配.使用匹配的值,我需要在Form Response表中设置特定列/行(F:F)的值.

示例: 这是Form Responses工作表的简化版本,以及我通常使用的公式: 在此输入图像描述

以下是另一个选项卡"Unique Databases!",如下所示:

在此输入图像描述

所以,我对JavaScript数组的理解是,在Form Responses Sheet上,我会将所有列(本例中的A:E)加载到变量中,并获取值.然后,获取"Unique Databases!"的A:B列,将这些值加载到另一个数组中.如果这是准确的,你如何比较1个数组的索引与另一个数组的索引,并返回相邻的匹配?

谢谢!

javascript google-apps-script

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