我有以下电子表格:
| Name | Rating |
| John | 2000 |
| Jane | 50 |
| Bill | 3000 |
| Sam | 500 |
我通过以下方式获取电子表格的数据:
mySheet.getDataRange().getValues();
我的目标是将阵列从最高评级打印到最低评级。我怎么能这样做?
编辑:我可能应该提到我知道sort函数:但是,问题在于它将字符串排序,而不是数字。这意味着60将显示在2000之上,因为它以6开头。
答案 0 :(得分:1)
您需要将比较器函数传递给sort()方法。
function sortDescending() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());
var values = range.getValues();
values.sort(function(a, b){
return b[1] - a[1]; //sorts by the 2nd element in a row
});
Logger.log(values);
}
请注意,我跳过了标题行,并没有将其包含在要排序的值列表中。希望这会有所帮助。