我正从Google电子表格中的日托机构收集服务数据,其中包含13列和最多10-12000行。
要创建每周服务报告,我将通过以下语句将整个表提取到数组中:
//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;
}
与电子表格的大小无关,这通常可以正常工作,但有时会导致“服务器错误”而无需更详细的描述。
我首先想到我可能在电子表格中有无效日期但到目前为止没有找到任何日期。 当发生此服务器错误时,我需要做的就是按服务日期手动排序电子表格,然后上面的函数可以正常工作。
我对排序算法并不熟悉,并将上述示例复制到互联网上。
有关我为什么不时遇到这个问题的想法?
非常感谢
亨氏
答案 0 :(得分:1)
最近我也发生了这个错误。我通过在排序之前将所有数据解析为相同类型来解决它。似乎存在将字符串与数字或副数相比较的情况会引发问题。