标签: 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万
查看次数

如何让onFormSubmit自动触发?

您提供的"修复"(test_onformsubmit)代码,每次电子表格中有新数据时,我都必须手动运行它.我希望它在提交表单时自动将pdf发送到电子邮件.有办法吗?因为手动方式运行代码完全像它应该的那样,但我希望这是一个自动事件,所以我不需要做任何事情.

查看原始问题/问题的父线程

google-sheets google-apps-script

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

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

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

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

谢谢,

search google-sheets google-apps-script

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

TypeError: Cannot read property "0" from undefined

I'm getting a very weird undefined error:

function login(name,pass) {
  var blob = Utilities.newBlob(pass);
  var passwordencode = Utilities.base64Encode(blob.getBytes());
  var ss = SpreadsheetApp.openById("");
  var sheet = ss.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var i=1;
  while (name != data[i][0]){
    Logger.log(data[i][0]);
    i++;
  }
  if (passwordencode == data[i][1]){
    UserProperties.setProperties({
      "name" :name,
      "pass" : passwordencode
      });
    Logger.log("You are logged in");
  }
  else if (passwordencode != data[i][1]) {
    Logger.log("You are not logged in");
    UserProperties.setProperties({
      "name" : "",
      "pass" : ""
      });
  }
}
Run Code Online (Sandbox Code Playgroud)

using googlescript. The one …

javascript runtime-error google-apps-script

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

Google电子表格 - 插入剪切/复制的单元格/行

Google电子表格没有像Excel中那样"插入剪切单元格"的功能.

假设我选择A4到B5,按Ctrl + X.
然后我将选择移动到A2.
现在我想"插入切割单元格",可能是插入空白单元格并将虚线范围移动到A2.
截图

有没有办法在自己的菜单上使用JavaScript ?

例如.

function insertCutOrCopiedCells(){
  var SS = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SS.getActiveSheet();
  var cell = sheet.getActiveCell();

  // How do you get the cells being cut/copied? (ie. A4 to B5)

  // We can then insert empty cells (2 cols 2 rows) at the selection (A2)
  // and move the cut cells (A4 to B5) there
}
Run Code Online (Sandbox Code Playgroud)

google-apps-script google-spreadsheet-api

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

在表单提交中收到的Google表单事件没有回复

我正在尝试使用绑定到表单的脚本从谷歌表单收集响应详细信息,使用onFormSubmit()触发器.

大多数情况下收到的细节没有错误,但偶尔会出现错误.收到触发器但没有数据传递给脚本.响应由Google表单控制台接收,但不会转发到脚本.

接收数据的代码:

function onFormSubmit(e)
{

  Logger.log("A response has been received!");
  Logger.log(e);
  var resp = e.response.getItemResponses(); //capturing trigger event output
  var form = e.source;
......
Run Code Online (Sandbox Code Playgroud)

出现错误时的执行记录:

[16-09-27 07:29:15:073 PDT] Starting execution
[16-09-27 07:29:15:096 PDT] Logger.log([A response has been received!, []]) [0 seconds]
[16-09-27 07:29:15:097 PDT] Logger.log([{authMode=FULL, triggerUid=xxxxxxx41}, []]) [0 seconds]
[16-09-27 07:29:15:099 PDT] Execution failed: TypeError: Cannot call method "getItemResponses" of undefined. (line 18, file "Code") [0.002 seconds total runtime]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我通过复制表单并重新设置所有权限来解决它.但是,我想要一个不再让我这样做的解决方案.在我的第10次重复现在:(

当我成功收到回复时,e也有一个回复键.

javascript google-apps google-apps-script google-forms

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

如何"使用Logger API将日志添加到项目中"?(谷歌脚本)

我正在尝试查看脚本的输出,但是当我转到"查看日志"时,我收到一条警告"未找到日志.使用Logger API将日志添加到项目中."

如何添加Logger API?

在此输入图像描述

google-apps-script

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