标签: google-apps-script

我可以从Google表格脚本生成文件吗?

我正在使用Google表格为我正在做的事情制作一堆数字数据.

有没有办法将子集导出到文本文件?

实际上,我的目标是导出一个文件,我可以直接包含在另一个项目的构建中.

那么有没有办法生成一个文本文件供下载?

google-apps google-sheets google-apps-script

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

Google应用脚本urlfetch编码网址

我想使用urlfetch来填充包含页面数据的电子表格,但我尝试使用的URL会返回错误作为无效参数.我认为问题是我在URL中使用了被误解的字符(例如引号和括号).

我尝试使用下面的命令对URL进行编码,但我假设我对某些字符进行了双重编码,这导致了问题.

var encodedURL = encodeURIComponent(pageURL)
Run Code Online (Sandbox Code Playgroud)

urlfetch google-apps-script

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

getRange使用脚本命名范围谷歌电子表格

可以getRange用来命名范围而不是区域吗?
当我似乎这样做时,它说参数必须是一个范围.例如,

代替:

     getRange("A4:E7");
Run Code Online (Sandbox Code Playgroud)

A4:E7已经将区域设置为sheet1中名为"Names"的命名区域.

你能否使用:

var tableRange = SpreadsheetApp.getActiveSpreadsheet();.getRangeByName("Names");
getRange(tableRange);
Run Code Online (Sandbox Code Playgroud)

或者还有其他方法可以做到这一点.完整的代码是:

function onEdit(event){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var editedCell = ss.getActiveCell();

    var columnToSortBy = 1;
    var tableRange = ss.getRangeByName("Names");

    if(editedCell.getColumn() == columnToSortBy){ 
        var range = ss.getRange(tableRange); 
        range.sort( { column : columnToSortBy } );
    }
}
Run Code Online (Sandbox Code Playgroud)

google-sheets named-ranges google-apps-script

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

如何从Google电子表格中读取正确的时间值

我试图从时间格式化Cell(hh:mm:ss)得到小时值,值可以更大24:00:00,例如20000:00:00应该给20000:

表:

两张Google Spread Sheet

如果你读了E1的价值:

var total = sheet.getRange("E1").getValue();
Logger.log(total);
Run Code Online (Sandbox Code Playgroud)

结果是:

周四4月12日07:09:21 GMT + 00:09 1902

现在我尝试将其转换为Date对象并获取它的Unix时间戳:

  var date = new Date(total);
  var milsec = date.getTime();
  Logger.log(Utilities.formatString("%11.6f",milsec));
  var hours = milsec / 1000 / 60 / 60; 
  Logger.log(hours)
Run Code Online (Sandbox Code Playgroud)

1374127872020.000000

381702.1866722222

问题是如何获得20000的正确值?

javascript time google-sheets google-apps-script

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

Google脚本按列搜索电子表格,返回行

我试图在运行时找到最好的脚本来完成一项任务.我有一个相当大的电子表格,我需要检查某些已知列中的值,并根据匹配情况返回该行.理想情况下,我想要一个包含返回行的新电子表格.

我已经通过ID打开了电子表格,并且我已经获得了工作表和范围,但不确定搜索特定列的最有效方法,并且不仅仅抓取该值而是整个行.

谢谢,

search google-sheets google-apps-script

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

"未配置访问权限.请使用Google Developers Console激活项目的API."

我有一个带有表单的google网站.我在表单的电子表格中添加了一个脚本,并添加了一个"on form submit"触发器.我想创建一个空圆圈.

这是脚本.

function createCircle(e) {

try{
  var email  = Session.getActiveUser().getEmail();
  var sh = SpreadsheetApp.getActiveSheet();
  var circle = PlusDomains.newCircle();
  circle.displayName = e.values[1];
  var userId = 'me';
  circle = PlusDomains.Circles.insert(circle, userId);
  MailApp.sendEmail(email,'event created' , "Circle name is ");
  }catch(e){
    var email  = Session.getActiveUser().getEmail();
    MailApp.sendEmail(email,'event failed' , e.message);
  }

}
Run Code Online (Sandbox Code Playgroud)

我已通过转到资源 - >高级Google服务激活了脚本的Google+域名API .有一行说明这些服务也必须在Google Developers Console中启用.所以我进入了Developers控制台并激活了API.

我仍然得到同样的错误, Access Not Configured. Please use Google Developers Console to activate the API for your project.

google-api google-sites google-apps-script google-plus

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

谷歌电子表格侧栏setWidth无法正常工作

有没有其他人遇到setWidth函数的问题?此处的示例为"300",但如果更改数字,则侧边栏的宽度相同.我在干净的电子表格上试了几次.

https://developers.google.com/apps-script/guides/dialogs#custom_sidebars

google-sheets google-apps-script

13
推荐指数
2
解决办法
4794
查看次数

如何在Google表格/表格中修改表单提交的响应?

最近,我一直在进行一项调查.我开始在Excel Forms Online中创建它,但在我意识到它的一些缺点之后切换到Google Forms.我遇到了一些障碍,但我以为我已经准备好了.

不幸的是,我开始在表单中添加问题并改变响应(拼写错误等等),这开始引发一大堆问题.如果适用的话,我必须回去询问用户对新问题的回答.更糟糕的是我无法修改提交内容.我无法编辑连接到表单的电子表格,因为结果存储在表单中.如果我重新生成电子表格,那么表单中提交的响应将替换之前的响应.所以我根本无法编辑电子表格.

我一直在寻找一种尝试手动编辑用户提交的响应的方法.我发现了一个资源在这里堆栈溢出,并在这里在产品论坛谷歌网上论坛,但不幸的是,我尝试了所有的例子,没有一次成功(是的,我把我的表单的网址中,一切都与被替换的名称电子表格名称).

填写完我的信息后,我继续接收的错误是TypeError: Cannot call method "getDataRange" of null. (line 8, file "Code").但是这张纸不是空的,我知道.

是否有其他方法可以使这项工作,或更好的方式来编辑工作表回复?

现在执行此操作的唯一方法是手动返回并再次以该用户重新提交表单.这是一种痛苦,因为它是10分钟的复选框和复制和粘贴.另外,昨晚我不小心跳过复制1个角色,现在我不得不重新做一遍.

从我在网上看到的情况来看,这可以做到,但我没有尝试过.该表格目前正在播放并立即接受回复.任何解决方案都是可以接受的,只要有一种方法可以使用脚本或其他工具编辑他们的响应,所以我不需要自己手动重新执行所有操作.

editing google-sheets google-apps-script google-forms

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

如何理解LockService并正确实现?

守则摘要

我有一个特定的领域中使用了大约80个用户谷歌的Apps脚本项目,但该应用程序是由我执行(即Publish> Deploy as web app> Execute the app as: Me).

该脚本的一个功能是从自定义表单(使用HTML Service)填充Google表格,然后通知我自己和提交用户(通过使用简单的登录系统和cookie识别).

它已经工作了大约6个月,但是1-2次通知电子邮件已经发送但Google Sheet条目没有出现.

我想这可能是由于并发使用脚本(因为两个通知电子邮件具有相同的时间戳)并且最近了解到了Lock Service.

我正在使用此帖子以确保我正确理解Lock并如何实现它,以防止由于并发脚本使用而导致条目未出现在Google表格中.

履行

我的场景的伪代码是:

Code.gs

var active_spreadsheet = SpreadsheetApp.openById("bbb");

// BEGIN - start lock here

var lock = LockService.getScriptLock();
try {
   lock.waitLock(30000); // wait 30 seconds for others' use of the code section and lock to stop and then proceed
 } catch (e) {
   Logger.log('Could not obtain lock after 30 seconds.');
 }

var …
Run Code Online (Sandbox Code Playgroud)

locking google-apps-script

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

OAuth 同意屏幕 - 删除应用程序徽标的能力:旧解决方案不再有效

问题:如何删除应用程序徽标。

解决方案:此答案中的先前解决方案/sf/answers/4001760591/不再有效。

Google 将 的格式更改"iconUrl"为"icon",现在使用 -Base64编码的数据流,例如"icon":"iVBORw0KGgoAAAAN...,而不是以前写为 的图像 URL "iconUrl":"https://..."。

我试过"icon":""许多Base64编码的值一样"icon":"IA","icon":"Lw"和一些其他-没有成功。我收到控制台消息,例如

为了 "icon":""

{
  "error": {
    "code": 400,
    "message": "The request failed because one of the field of the resource is invalid.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.PreconditionFailure",
        "violations": [
          {
            "type": "client_auth_config",
            "subject": "?error_code=9&error_field_name=UpdateIconRequest.icon&error_field_value=%3CByteString@3eeee81e+size%3D0+contents%3D%22%22%3E"
          }
        ]
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

或者

{
  "error": {
    "code": 400,
    "message": "Request contains an …
Run Code Online (Sandbox Code Playgroud)

google-api google-apps-script google-oauth google-cloud-platform google-workspace

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