我正在收集Google Spreadsheet中日托机构的服务数据,该数据包含13列,最多10-12000行。使用java脚本对数组进行排序时发生服务器错误
要通过下面的语句创建每周服务报告,我取整个表到数组:
//Fetch all required data and pack it into an array
var DataRange = Konsoblatt.getRange(StartRow, 1, NumRows, ColumnEmailAddressTageseltern) //Define required data range: all rows and columns up to the email address of the parents
var AlleEintraege = DataRange.getValues(); //Fetch all data in defined range
总是完美的作品。
要编译,我需要使用沿着服务日期所获取的数据进行排序报告:
AlleEintraege.sort(ArraySort(ColumnDatumLeistung-1)); //Sort array for the date of the service
其中提到:
function ArraySort(column) {
//Diese Funktion sortiert ein Array nach der Kolonne "column"
return function (a,b) {
a = a[column];
b = b[column];
return a == b ? 0 : (a < b ? -1 : 1)
}
return 0;
}
电子表格的大小的独立这正常工作以及,但不时会导致“服务器错误”,而无需更详细的描述。
我首先想到,我可能在电子表格中有无效的日期,但到目前为止没有找到任何日期。 当发生此服务器错误时,我需要做的就是按服务日期手动对电子表格进行排序,然后上述功能无任何错误地工作。
我在排序算法方面并不是很有经验,并且复制了上面的例子在互联网上的例子。
关于为什么我不时碰到这个问题的任何想法?
非常感谢和我一起发生
亨氏
服务器错误似乎与您的算法无关。您是否可以拥有一组固定的数据(在另一个电子表格中),并在一整天内每5分钟运行一次与触发器相同的功能。这会给你一个想法,问题是你的算法还是服务器。 – Srik 2013-04-28 17:41:33
在单独的电子表格中,您还可以运行电子表格功能:= sort(importrange(“Id_of_remote_sheet”,“range”),13,1)其中range是远程工作表的工作表和范围,例如Sheet4!A:M如果你想在第十列进行排序,或者例如将13改为10.最后的1可以是0(零),用于降序或升序排序。 – 2013-04-28 18:06:47
@Srik这个脚本已经基于触发器,并且自从现在一年多以来每周运行一次。正如我所说:它通常运行良好,但每2-3个月报告不会自动跳出... 所以,是的,我也不认为这是一个脚本错误。但为什么有时会发生? – ruffieux 2013-05-05 18:25:38