Tag: 谷歌应用程序脚本

谷歌文档脚本设置单元格的值

我想从脚本中设置谷歌电子表格的文本或数字,我知道如何在MS Excel中,但不知道如何在谷歌电子表格。 我想在单元格F2中设置Hello或者数字9。 我发现这个代码到目前为止 SpreadsheetApp.getActiveRange().setValue('hello'); 但是没有指定哪个单元格

如何debuggingGoogle Apps脚本(也就是Logger.loglogging到哪里?)

在谷歌文档电子表格,你可以添加一些脚本function。 我为onEdit事件添加了一些东西,但我不知道它是否工作。 据我所知,你不能从谷歌文档debugging现场事件,所以你必须从debugging器,这是毫无意义,因为传递给我的onEdit()函数的事件参数将永远是不确定的,如果我运行它来自Script Editor 。 所以,我试图使用Logger.log方法来logging一些数据,每当onEdit函数被调用,但这也似乎只有从Script Editor运行时才起作用。 当我从Script Editor运行它时,我可以通过查看View->Logs…查看View->Logs… 我希望能够从事件实际执行时看到日志,但我无法弄清楚。 我如何debugging这个东西??!

select列的最后一个值

我有一个电子表格,在列G中有一些值。一些单元格之间是空的,我需要从该列的最后一个值到另一个单元格。 就像是: =LAST(G2:G9999) 除了LAST不是一个函数。

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

我试图从一个时间格式单元格(hh:mm:ss)得到的小时值,值可以是更大的24:00:00例如20000:00:00应该给20000: 表: 如果你读了E1的价值: var total = sheet.getRange("E1").getValue(); Logger.log(total); 结果是: 星期六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) 1374127872020.000000 381702.1866722222 问题是如何获得20000的正确值?

从外部URL调用定制的GASfunction

我想调用我在Google Apps脚本中编写的自定义函数。 当我执行一个getJSON,我想它会自动运行我的doGet(e)。 我的Javascript: $.getJSON(https://script.google.com/macros/s/[ID]/exec, function(data){ //code here }); 例如有没有一种可能的方式来调用我的自定义函数之一 我的Google Apps脚本: function getNumberOfFans(e){ //code here } 我必须添加一些额外的function参数到我的url?

为什么我的应用程序脚本部署为可执行的API返回权限被拒绝?

我在脚本编辑器中创build了一个脚本,将其发布为“部署为API可执行文件”。 在这个脚本里面,我提供了一个doc_id给我的工作表,并定义了一个函数来获取表单中的数据。 然后我转到https://developers.google.com/apps-script/execution/rest/v1/scripts/run来testing执行API。 我添加了范围,授权应用程序,并尝试它。 我收到以下错误信息: "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } 有人能告诉我我做错了什么吗?

使用htmlService和应用程序脚本无法正常工作的表单和file upload

我试图上传一个文件到一个特定的谷歌驱动器文件夹连同表单数据到电子表格。 此代码的电子表格部分工作,但file uploadfunction没有。 任何帮助解决这个将不胜感激。 Code.gs var submissionSSKey = 'SS ID'; function doGet(e) { var template = HtmlService.createTemplateFromFile('Form.html'); template.action = ScriptApp.getService().getUrl(); return template.evaluate(); } function doPost(e) { var template = HtmlService.createTemplateFromFile('Thanks.html'); var LoanType = template.name = e.parameter.name; var borrower = template.department = e.parameter.department; var amount = template.message = e.parameter.message; var emailed = template.email = e.parameter.email; var […]

如何保护Google电子表格中的Apps脚本代码?

我用脚本编辑器为Google电子表格写了一些代码。 我想与我的客户分享这个电子表格,但我不想分享我写的代码。 此代码向我的电子表格添加一个菜单,其中包含应用程序的有用function,当我的客户打开此电子表格时,应用条件应为:他们不应该能够看到其代码。 这很容易与Excel,但与谷歌电子表格,我不知道。 。 我在Google上search了很多,但他们都提供了如何共享电子表格的想法。 例如在“查看”模式,但在这种情况下,有一个问题:我的菜单function,其中添加一个菜单,是“onOpen”,并不会启动时,我的客户打开它。 如何在Google电子表格中执行此操作?

在Google电子表格中刷新由自定义函数检索的数据

我已经写了一个自定义的谷歌应用程序脚本,将收到一个ID和从Web服务(价格)获取信息。 我在电子表格中使用这个脚本,它工作得很好。 我的问题是,这些价格变化,我的电子表格并没有得到更新。 我如何强制它重新运行脚本并更新单元格(而不需要手动检查每个单元格)?

脚本来总结数据没有更新

我有一个时间表数据的Google电子表格; 它每个月都有一个表格,每个表格有六个列块,每个客户端一个块。 我创build了一个汇总表,获取每个客户端的总数并将其显示在列表中: function getClientTotals(sheetname, colcount) { colcount = colcount ? colcount : 6; var res; var ss = SpreadsheetApp.openById('myid_goes_here'); if(ss) { res = []; var totrow = ss.getRange(sheetname + '!A1:ZZ1').getValues()[0]; for(var i = 0; i < totrow.length; i += colcount) { res.push([totrow[i], totrow[i + colcount – 1]]); } } return res; } 然后,我刚刚在包含=getClientTotals($C$7,$C$8)汇总表中添加了一个单元格,该单元格传递了月份的表名和每个客户端的列数(在“模式”修改的情况下)。 这一切工作正常,但是,它不会更新源数据更改时。 […]