Google apps script 如何克服';超过最大执行时间';在谷歌应用程序脚本中?

Google apps script 如何克服';超过最大执行时间';在谷歌应用程序脚本中?,google-apps-script,Google Apps Script,我想我应该首先说,我是所有这一切的一个完完全全的noob。目前,我有一个系统,我将.csv-s上传到我的谷歌硬盘,在我运行时间触发脚本后,它们被传输到谷歌电子表格文件。问题是,最近我的.csv-s开始稍微变大,并触发了“超出最大执行时间”弹出窗口。我想知道你能否帮我找到一个解决办法?我已经附上我的脚本,这反过来是基于各种小脚本,我在这个网站上找到 有没有一种方法可以只传输两列(比如a和F) 函数导入数据(){ var fSource=DriveApp.getFolderById(“0B24o3

我想我应该首先说,我是所有这一切的一个完完全全的noob。目前,我有一个系统,我将.csv-s上传到我的谷歌硬盘,在我运行时间触发脚本后,它们被传输到谷歌电子表格文件。问题是,最近我的.csv-s开始稍微变大,并触发了“超出最大执行时间”弹出窗口。我想知道你能否帮我找到一个解决办法?我已经附上我的脚本,这反过来是基于各种小脚本,我在这个网站上找到

有没有一种方法可以只传输两列(比如a和F)

函数导入数据(){
var fSource=DriveApp.getFolderById(“0B24o3jJdWKZ2Mk5KaVBkX0”);//报告\u文件夹\u id=csv报告保存文件夹的id
var ssA=SpreadsheetApp.openById(“1KxvCe4zyiYCxvjFEpCelQpB85kABpFE4gy77”);
var sheetA=ssA.getSheets()[0];
var rangeA=sheetA.getRange(“a1:a10”);
var-cellA=rangeA.getCell(7,1);
Logger.log(cellA.getValue());//最后几行用于从用作清单的工作表中获取my.csv的URL(必须转换)
var fi=fSource.getFilesByName(cellA.getValue());
var ss=SpreadsheetApp.openById(“1kxvce4zyicxvjfepcelqpb85kabpfe4gy77”);//数据表id=电子表格的id,该电子表格包含要用新报告数据更新的数据
如果(fi.hasNext()){//如果报告文件夹中存在以前引用的.csv文件,则继续
var file=fi.next();
var csv=file.getBlob().getDataAsString();
var csvData=CSVToArray(csv);//有关CSVToArray函数,请参见下文
var ssB=SpreadsheetApp.getActive();
var sheetB=ssB.getSheetByName('NEWDATA');
ssB.删除表(表B);
var newsheet=ss.insertSheet('NEWDATA');//创建一个'NEWDATA'表来存储导入的数据
//循环浏览csv数据数组,并作为行插入(追加)到“NEWDATA”工作表中

对于(var i=0,lenCsv=csvData.length;我的同事告诉我要勇敢,再次运行相同的代码——错误消息消失了,因为谷歌似乎已经知道我需要更多的时间,最多30分钟


祝你好运,再试一次。在我的情况下,它起了作用。

如果问题是一个巨大的csv文件,你将无法找到它。你需要上传尽可能多的csv小文件,并逐个处理。但问题也离题了,因为它要求我们修改你发现的代码,而不是你试图修改的东西,并且有错误,我们可以帮助修复。非常感谢您的回复。您知道是否有一种方法可以只传输两列(比如a和B)?是的,您可以尝试。您也可以尝试构建一个二维数组并一次性写入。目前,您在循环中写入许多(csvData.length)小一维数组,其中“//循环浏览csv数据数组,并将其作为行插入(追加)到“NEWDATA”表中。请参阅“使用批处理操作”下的内容。一旦您向我们展示了您的尝试中存在的问题,本论坛将为您提供帮助。