小编Ala*_*lls的帖子

使用Google Apps脚本 - GMail在已发送文件夹中获取未读数量

有没有办法在已发送文件夹中获取未读邮件?

基本上,我想要的功能是:当我回复邮件列表中已过滤但未通过我的INBOX的邮件时,我希望所有后续回复都能到达我的INBOX.

我试图完成的方式是,如果我在Sent文件夹中看到一个未读邮件,这意味着我参与的一个帖子中有一个新邮件.我这样说是因为当我点击Gmail网页界面中的"已发送"时,我发现这些邮件未读.

那么,有没有办法获得系统标签的未读数量?

肮脏的方式:我可以做到这一点的一种方法是创建一个过滤器,选择所有包含"from:"的邮件作为我的地址并使用它来获得我想要的东西.但是,这样我就创造了一个我感觉不舒服的副本!

javascript gmail google-apps-script gmail-api

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

如何使用日历的时区为日期对象设置时区

我想使用日历时区来设置日期对象的时区。我正在寻找合适的技术。我们在全国各地设有多个基地,每个基地都有自己的日记和日常活动日历。我们有多个发布到日历的脚本。我想使用日历的时区来设置日期对象时区,因为用户旅行到不同的基地,并且他们的计算机可能未设置为正确的时区。我们希望避免错误的时间设置。

  1. 脚本的时区是否应该设置为 UTC?

  2. 这就是我目前所处的位置:

    function submitUiTest(e) {
      var app = UiApp.getActiveApplication();
      var cal = CalendarApp.getCalendarById('calendarId');
      var timeZone = cal.getTimeZone();
    
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName('Sheet1');
    
      var startTime = e.parameter.startDate
      startTime.setHours(e.parameter.startHour, e.parameter.startMin, 0)
      startTime = formatTime(startTime, timeZone);
      Logger.log(startTime)
    
      var endTime = e.parameter.endDate
      endTime.setHours(e.parameter.endHour, e.parameter.endMin, 0);
      endTime = formatTime(endTime, timeZone);
      Logger.log(endTime)
    
      cal.createEvent('TimeZone Test', new Date(startTime), new Date(endTime));
    
      ss.appendRow([startTime, endTime]);
    
      return app;
    }
    
    function formatTime(time, timeZone){
      return Utilities.formatDate(time, (timeZone-time.getTimezoneOffset()), 'M/d/yyyy HH:mm');
    }
    
    Run Code Online (Sandbox Code Playgroud)

编辑:目前有 3 个日历,它们不是用户日历,只是为各个航空站创建的单独日历。每个航空站都位于不同的时区。当工作人员在这些站点工作时,他们会将日常活动发布到日历中,并且我们还有几个 Ui 脚本可以发布到相同的日历中。飞行日志。当日历条目发布到任何日历时,时间仅与脚本上设置的时区相关,而不与日历上的时区相关。创建日期或时间戳对象时,如何使用日历本身设置的时区。

记录不同时区日期的脚本的最佳实践是什么?将脚本时区设置为 UTC 并进行转换?你用什么来获取用户的时区,或者在这种情况下,我也不关心用户的时区设置了什么,我需要使用日历的时区。

google-apps-script

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

获取 Google 云端硬盘文件夹中的最新文件

我的 Google 应用程序脚本中有以下几行,但文件 API 现已弃用,我无法更新代码。

原来的行是:

var folder = DocsList.getFolder('Folder Name');
var file = folder.getFilesByType(DocsList.FileType.SPREADSHEET)[0];
var filename = file.getName(); //and get its name
var fileId = file.getId(); // its ID
var fileurl = file.getUrl(); //and its url
var source = SpreadsheetApp.openById(fileId);`
Run Code Online (Sandbox Code Playgroud)

我需要我的脚本转到驱动器上的文件夹,获取此文件夹中的最新谷歌电子表格文件并打开它。

javascript deprecated google-sheets google-apps-script google-drive-api

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

使用 Apps 脚本在内存中创建新的 blob

我想在内存中创建一个新的 blob,将内容放入 blob 中,为其命名,最后将其另存为云端硬盘中的文件。

我知道如何从 blob 在云端硬盘中创建文件。我唯一要寻找的是首先创建空的新斑点。

javascript blob google-apps-script

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

时间戳日期和时间格式 - 应用脚本 - 格式日期和时间

我无法在电子表格单元格中获得时间戳格式以包含时间.目前,它只生成日期.我需要更改什么才能获得显示日期和时间的时间戳?

像这样:

3/17/2015 10:57:45

function onEdit(event)
{
  var ss = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  if(r.getColumn() == 8){ //To check if update cell in Column, 1 means first column.
    if(r.getValue() == "Resolved"){ //To check the value is equal to Resolved
      ss.getRange('L'+r.getRow()).setValue(new Date()); //Set column B1 value to current date.
      date = Utilities.formatDate(time, "GMT", "HH:mm:ss");
    }else{
      ss.getRange('L'+r.getRow()).setValue('');
    }
  }
Run Code Online (Sandbox Code Playgroud)

timestamp google-sheets google-apps-script google-forms

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

Google Apps 脚本:仅复制和粘贴公式

我只需要使用 Google Apps 脚本在电子表格中复制和粘贴公式

var range = activeSheet.getRange(targetRow-1, 1, 1, activeSheet.getLastColumn());
range.copyTo(activeSheet.getRange(targetRow, 1, 1, activeSheet.getLastColumn()), {contentsOnly:false});
Run Code Online (Sandbox Code Playgroud)

这给了我完整的信息,包括公式和数据。但是,我只想复制公式(没有数据)。

CopyFormulasToRange 不幸的是不存在。

javascript google-sheets google-apps-script

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

如何使用 Google Apps Script 将 JSON 文件保存到 Google Drive?

我有一个神经网络脚本需要来自 JSON 文件的训练数据,是否可以使用 Google Apps 脚本将 JSON 文件保存到 Google Drive?

json file google-apps-script

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

使用Javascript匹配在字符串中查找插入符^字符

matchJavascript中的方法会找到^插入字符吗?

这不适合我.

var theString = '^A^B^C^D';
var theMatch = theString.match(/^/g);
Run Code Online (Sandbox Code Playgroud)

插入符号的ASCII码是94.我可以用ASCII码匹配它吗?

javascript regex string match

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

如何像在 Python 中一样在 Google Apps 脚本中对字符串进行切片?

我正在尝试制作一个 Google 表格,该表格可以为大型团队在访问时使用其 Gmail 地址自动打开指定的表格。如何在 Apps 脚本中对字符串进行切片?第三行的“email.slice”只是我作为占位符编写的。

function onOpen() {
    var email = Session.getActiveUser().getEmail();
    var username = email.slice[0:-9];
    var ss= SpreadsheetApp.openById(username);
    SpreadsheetApp.setActiveSpreadsheet(ss);
}
Run Code Online (Sandbox Code Playgroud)

javascript string google-apps-script

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

从文件 URL 中查找应用脚本发布的 URL - 按发布的 Web 应用 URL 搜索文件

我们从客户以前的开发人员那里继承了很多 Google Apps 脚本项目。Apps 脚本通过嵌入的小部件部署在 Google 站点 (sites.google.com) 上的各种页面上。每当我们需要处理其中之一时,我们都能够通过以下方式找到该项目:

  1. 转到包含小部件的sites.google.com 页面,
  2. 编辑小部件,
  3. 注意到发布的 URL,
  4. 转到 script.google.com,
  5. 打开/编辑名为“像”我们正在寻找的项目,
  6. 单击发布 > 部署为 Web 应用程序
  7. 将“当前网络应用 URL”与上面第 3 步中看到的进行比较

这是一个相当乏味的过程,但到目前为止它已经奏效了。

当通过sites.google.com 访问时,其中一个小工具开始显示“需要授权...”消息,因此我们需要追踪它所属的项目。我们完成了步骤 1-3(上面),但是我们找不到任何具有与小工具匹配的 URL 的项目。

我的预感是组织内部的其他人(不是开发人员的帐户)拥有该项目,但可能是 5 或 6 个不同的人,他们都不是开发人员或特别具有技术头脑。另一种可能是开发者账户确实拥有该项目,但它的名字很糟糕,我并不兴奋,要经过 5-7 几十次步骤才能找到它。

有没有办法根据 URL 定位特定项目?script.google.com 上的搜索工具似乎只搜索项目名称,不幸的是,这在这种情况下没有帮助。

url google-sites google-apps google-apps-script

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