标签: google-apps-script

AJAX发布到谷歌电子表格

我正在尝试将表单数据发布到Google电子表格中.目前,如果表单已经过验证,则会发生以下情况:

if (validateForm === true) {
        $.ajax({
            type: 'post',
            url: 'https://docs.google.com/spreadsheet/ccc?key=0AlwuDjMUxwhqdGp1WU1KQ0FoUGZpbFRuUDRzRkszc3c',
            data: $("#workPLZ").serialize(),
            success: alert($("#workPLZ").serialize())
        });
    }
    else {}
Run Code Online (Sandbox Code Playgroud)

我使用成功设置来验证我的表单数据是否正确序列化(它是)并且它是成功的.但是,我的Google电子表格没有更新(没有数据通过).我在这里使用了示例代码,将doGet更改为doPost(http://mashe.hawksey.info/2011/10/google-spreadsheets-as-a-database-insert-with-apps-script-form-postget-submit-方法/),并使谷歌电子表格公开可用(并且可由任何人编辑).我按照说明,将代码复制到googledocs,然后运行setUp两次(第一次请求许可,第二次我运行它我没注意到任何事情发生).谁能帮我?我觉得我非常接近.

ajax jquery google-sheets google-apps-script

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

新的Google表格自定义功能有时会无限期地显示"正在加载..."

特定于:"新"谷歌表.

这是谷歌在新表中强调的已知问题.

问题:如果您在谷歌工作表的谷歌应用程序脚本中编写复杂的*自定义函数,您偶尔会遇到单元格,在单元格周围显示一个红色错误框,文本为"正在加载..."

谷歌建议:

如果发生这种情况,请尝试重新加载页面或重命名该函数并更改对新名称的所有引用.

但是对于遇到此问题的其他开发人员(以及谁无法逃避"加载..."错误),我在下面的答案中写了我的发现,如何一致地克服这个问题(有限制).


*我们将此问题视为Google Sheet无限期"错误......加载数据"问题的规范答案.它不仅限于复杂或慢速的功能.

google-sheets google-apps-script

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

使用谷歌应用程序脚本从电子表格数据中检索行

我正在使用Google应用脚本将表单数据写入电子表格.现在我想从Excel中获取符合条件的值(例如,按日期,用户名过滤)并使用app脚本显示它们.

我的电子表格有

+-------------+-----------+----------------------+
| Date        | Username  | Comment              |
+-------------+-----------+----------------------+
| 2012-05-02  | palani    | My first comment     |
| 2012-05-02  | raja      | My second comment    |
| 2012-05-03  | palani    | My third comment     |
| 2012-05-03  | raja      | My fourth comment    |
+-------------+-----------+----------------------+
Run Code Online (Sandbox Code Playgroud)

现在我想过滤2012-05-02日期和raja用户名的数据,并使用app-script(作为Web服务运行)中的标签显示它们.

我的所有搜索都返回了解决方案SpreadsheetApp.getActiveSheet().getDataRange();,我认为这不是优化方式,可以在工作表中显示1000多行中的一条记录.

编辑

现在,我.getValues()只使用.这里显示的数据仅供参考; 我的实际工作表现在有15列和5000多行.最终它将增长到数百万,因为这是一个时间表应用程序.我想知道有没有其他方法来getValues()过滤行?

=Filter在tmp单元格上应用公式也是一个问题,因为脚本可以由多个人同时使用.

spreadsheet google-apps-script google-spreadsheet-api

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

Sheet.getRange(1,1,1,12)括号中的数字指定了什么?

Sheet.getRange(1,1,1,12)
Run Code Online (Sandbox Code Playgroud)

我无法理解这些论点1,1,1,12.这是什么 - 表单ID或行或什么?

method getRange(row, column, optNumRows, optNumColumns)
Run Code Online (Sandbox Code Playgroud)

这是什么意思optNumRowsoptNumColumns意思???

google-sheets google-apps-script google-spreadsheet-api

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

如何为用户隐藏某些列?

在共享的Google电子表格中:

我不希望我的域中的特定用户查看包含敏感数据的列,但此人仍应能够编辑电子表格的其余部分.

我尝试创建一个"主"电子表格并使用importrange将数据转换为"共享"工作表,但是一旦我编辑了共享电子表格中的任何单元格,importrange就不再有效,因为工作表已清空.

有没有快速的方法来做到这一点,也许使用脚本?

google-sheets google-apps-script

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

如何找到Google SpreadSheet ID?

https://developers.google.com/apps-script/guides/rest/api#parameter_and_return_types

使用Google Execution Api for Java时,电子表格的ID不是很容易理解.这是代码片段:

// Initialize parameters for that function.
String sheetId = "<ENTER_ID_OF_SPREADSHEET_TO_EXAMINE_HERE>";
List<Object> params = new ArrayList<Object>();
params.add(sheetId);
Run Code Online (Sandbox Code Playgroud)

关于如何找到这个的任何想法.我运行Sheets api来返回SpreadSheet的id,但它返回一个链接,当我使用https://spreadsheets.google.com/feeds/spreadsheets/ STRING或只是STRING本身时,我仍然得到:"code" :404,"errors":[{"domain":"global","message":"找不到请求的实体.","reason":"notFound"

java google-apps-script

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

如果所述行中的单元格值为0或为空,则删除Google Spreadsheets中的行

如果在该行中为"C"列输入的值为0或空白,我希望能够删除Google Spreadsheets中的整行.有没有一个简单的脚本我可以编写来完成这个?谢谢!

google-sheets google-apps-script

23
推荐指数
5
解决办法
8万
查看次数

Google应用脚本超时~5分钟?

我的谷歌应用程序脚本正在迭代用户的谷歌驱动器文件和复制,有时将文件移动到其他文件夹.该脚本始终在5分钟后停止,日志中没有错误消息.

我在一次运行中排序数十或有时数千个文件.

有任何设置或解决方法吗?

google-apps-script google-drive-api

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

找到细胞匹配值并返回Rownumber

员工表包含单元格C2中员工的姓名.员工的姓名也应该在B3:B153范围内的数据表中.

如何在数据表中获取与员工姓名匹配的单元格的rownumber?

我尝试了以下脚本,但它似乎不起作用.

  var Sheet = SpreadsheetApp.getActive();
  var Employeesheet = Sheet.getSheetByName('Employee')
  var DataSheet = Sheet.getSheetByName('Data');
  var Column = Sheet.getRange(3,2,151,1);
  var Values = column.getValues(); 
  var Row = 0;

  while ( Values[Row] && Values[Row][0] !=(EmployeeSheet.getRange(2,3,1,1).getValue()) ) {
    Row++;
  }

  if ( Values[Row][0] === (EmployeeSheet.getRange(2,3,1,1).getValue()) ) 
    return Row+1;
  else 
    return -1;

  }
Run Code Online (Sandbox Code Playgroud)

row-number google-docs google-sheets google-apps-script

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

Google电子表格中的时区转换

我知道这很简单.

在Google电子表格中,我有一个列,我在一个时区(GMT)中输入时间而另一列应该自动在另一个时区(太平洋时间)获取时间

 GMT      | PT
----------|------------
 5:00 AM  | 9:00 PM
Run Code Online (Sandbox Code Playgroud)

截至目前我正在使用

 =$C$3-time(8,0,0)
Run Code Online (Sandbox Code Playgroud)

这里的问题是,我想更改夏令时的时间公式.

是否有任何可用的功能或脚本可以将夏令时自动计算.

timezone formulas google-sheets dst google-apps-script

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