标签: google-apps-script

google_apps_scripts 1个电子表格中的2个项目,在另一个项目中调用一个函数

我有一个包含两个项目的电子表格.称他们为P1和P2.项目P1中有一个功能,我们将调用F1.

我有一个函数F2,在P2中试图调用F1.我收到一条错误消息,指出F1未定义.

代码(在P2中):

function F2()
{
   var rc = F1();
   Browser.msgBox("returned value: "+ rc);
}
Run Code Online (Sandbox Code Playgroud)

代码(在P1中):

function F1()
{
   return "this is a test";
}
Run Code Online (Sandbox Code Playgroud)

两个项目都包含在同一个电子表格文件中.

google-apps-script

0
推荐指数
1
解决办法
591
查看次数

使用REST API创建时间驱动的触发器

我正在考虑为用户编写一些Java代码来安装时间驱动的触发器(定期运行谷歌应用程序脚本).但无法找到用于操纵触发器的REST API.想知道是否有可能.谢谢.

桑杰

google-api google-apps-script google-api-java-client

0
推荐指数
1
解决办法
223
查看次数

新的Date()函数无法正常工作

有谁知道为什么

new Date('2012','1','1')
Run Code Online (Sandbox Code Playgroud)

返回2012年2月1日而不是1月1日?

new Date('2012','0','1')
Run Code Online (Sandbox Code Playgroud)

将于2012年1月1日返回

这是奇怪的还是合乎逻辑的?

javascript google-apps-script

0
推荐指数
1
解决办法
406
查看次数

Google App脚本onEdit?

真的觉得我错过了Spreadsheet对象脚本.

我正在尝试自动发送电子邮件给onEdit.我在测试中显式运行脚本时成功通过电子邮件发送,但onEdit事件似乎永远不会被触发(甚至看不到日志消息).脚本看起来非常简单.

function onEdit(e) {
  var sheet = e.source;
  var viewers = sheet.getViewers();
  var ct = viewers.length;
  var recipients = [];
  for(var i=0;i<ct;i++){
    recipients.push(viewers[i].getEmail());
  };
  var subject = 'Update to '+sheet.getName();
  var body = sheet.getName() + ' has been updated.  Visit ' + sheet.getUrl() + ' to view the changes ' + e.range;

  Logger.log('Running onedit');

  MailApp.sendEmail(recipients, subject, body);
};
Run Code Online (Sandbox Code Playgroud)

triggers google-sheets google-apps-script

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

自动刷新Google Apps Scripts webapp UI?

我使用Google Apps Scripts创建了一个简单的Web应用程序.UI只显示在FusionTable中连续更新的几个数字.自定义数据采集系统在我家本地运行,并每分钟向FusionTable发送新结果.我希望每隔一分钟更新我的GAS webapp上的UI,以便显示新的数字.

通过运行时间驱动程序触发器来定期从FusionTable中获取数据并将数字存储在我脚本自己的ScriptDb中,我解决了一半的问题.所以这可以很好地将我的数据放在正确的邻域中.但我仍然没有看到如何使用新数据定期更新UI中的文本框.

到目前为止,我已在UI上手动配置了一个刷新按钮,用户可以单击该按钮以使用存储在ScriptDb中的最新数字更新显示.我很亲密,我可以尝到它!

有人有想法吗?

javascript web-applications google-apps-script

0
推荐指数
1
解决办法
5563
查看次数

如何将onChange单元格值事件/脚本附加到谷歌表

如何将onChange方法附加到Google电子表格中的单元格.我想在单元格中的值变得大于1000时立即向某人发送电子邮件?

google-apps-script

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

使用google apss脚本将文件上传到云端硬盘

我正在尝试将图像文件上传到谷歌驱动器...代码;

function upload() {
  var url= // url for image
  var contents=UrlFetchApp.fetch(url).getContent()   // trying to get image content
  var base = 'https://docs.google.com/feeds' 
  var fetchArgs = googleOAuth_('docs', base);
  fetchArgs.method='POST'
  fetchArgs.contentType='image/jpeg'
  var xml={title :"image",content:contents}
  fetchArgs.payload=xml
  var fileURL='https://www.googleapis.com/upload/drive/v2/files?uploadType=media'
  UrlFetchApp.fetch(fileURL, fetchArgs)
}

function googleOAuth_(name,scope) {
  var oAuthConfig = UrlFetchApp.addOAuthService(name);
  oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
  oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
  oAuthConfig.setConsumerKey(consumerKey);
  oAuthConfig.setConsumerSecret(consumerSecret);
  return {oAuthServiceName:name, oAuthUseToken:"always"};
}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我收到此错误:

请求返回代码403失败.服务器响应:{"error":{"errors":[{"domain":"usageLimits","reason":"dailyLimitExceededUnreg","message":"超出未经身份验证的使用的每日限制".继续使用需要注册.","extendedHelp":" https://code.google.com/apis/console "}],"code":403,"message":"超出未经身份验证的使用的每日限制.继续使用需要注册." }}

我做错了什么,我没有得到这个....请给我一些可行的解决方案

google-apps-script google-drive-api

0
推荐指数
1
解决办法
848
查看次数

Google Apps脚本会双重删除电子表格中的行

function onEdit() {
var openRequests = SpreadsheetApp.getActive().getSheetByName('Open Requests');
var lastRowOpen = openRequests.getLastRow();

var closedRequests = SpreadsheetApp.getActive().getSheetByName('Closed Requests');
var lastRowClose = closedRequests.getLastRow();

var closed = openRequests.getRange(2,8,lastRowOpen,1).getValues();

for (var i = 0; i < lastRowOpen; i++)
{
    if (closed[i][0].toString() == 'Yes')
    {
        var line = i+2;
        if (closedRequests.getLastRow() == 1)
        {
            openRequests.getRange(line,1,1,9).copyTo(closedRequests.getRange(2,1,1,9));
            closedRequests.getRange(2,9,1,1).setValue(new Date());
            openRequests.deleteRow(line);
        }
        else
        {
            openRequests.getRange(line,1,1,9).copyTo(closedRequests.getRange(lastRowClose+1,1,1,9));
            closedRequests.getRange(lastRowClose+1,9,1,1).setValue(new Date());
            openRequests.deleteRow(line);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我已经设置了一个触发器来运行onEdit.它的作用是检查一个被调用的列Closed以查看它是否显示Yes.该Closed列有一个数据验证下拉菜单,其中包含值Yes.

因此,当我单击下拉菜单并选择时Yes,它应该将整行复制到另一个名为的工作表,Closed Requests然后从电子表格中删除该行Open …

javascript google-sheets google-apps-script

0
推荐指数
1
解决办法
1351
查看次数

嵌套数组操作看起来像一个矩阵

我正在检索一些数据,数据如下所示:

1,  2,  3,  4,  5
6,  7,  8,  9,  10
11, 12, 13, 14, 15
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样

[
   [[1],[2],[3],[4],[5]],
   [[6],[7],[8],[9],[10]],
   [[11],[12],[13],[14],[15]]
]
Run Code Online (Sandbox Code Playgroud)

所以我可以像矩阵一样对数组进行处理,data[0][1]将是"2".

通过这个答案,它几乎就在那里,但并不完全.我很难看到我想要的东西.

javascript google-apps-script

0
推荐指数
1
解决办法
95
查看次数

Google Apps脚本返回错误的月份(减去1)

在GAS中使用这个简单的脚本:

function testingStuff(){
var date = new Date();
var yr = date.getYear();
var dt = date.getDate();
var mt = date.getMonth();

Logger.log("year: " +yr);
Logger.log("date: " +dt);
Logger.log("month: " +mt);
}
Run Code Online (Sandbox Code Playgroud)

我得到这个作为我的回答:

year: 2013
date: 28
month: 2
Run Code Online (Sandbox Code Playgroud)

今天是2013年3月28日.我不知道是什么导致了这个错误.有没有人得到这个?或者我做错了什么?

google-apps-script

0
推荐指数
1
解决办法
3819
查看次数