Google脚本-表格-排序-如何避免对第一行进行排序?

时间:2020-07-15 13:30:03

标签: sorting google-apps-script google-sheets

一个愚蠢的事情让我me不安。我敢肯定你会笑的,但是我该怎么办 对工作表进行排序,而不将第一行包括在内?

这是我的代码:

 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("test1");
 spreadsheet.sort(4); // or  spreadsheet.sort(4,false); or  spreadsheet.sort(4,true);

这将按D列进行排序,但也会对第一行进行排序。 D列仅包含文本。

有趣的是,如果您对仅包含数字/日期的列进行排序,那么它将起作用,并且确实避免了对第一行进行排序。

那么,我该如何对一列文本进行排序并避免对第一行进行排序?

我知道我可以将范围设置为从A2开始直到最后一列,但这似乎是“混乱”。像这样

spreadsheet.getRange('A2:AI').sort({column: 4, ascending: true});

谢谢

2 个答案:

答案 0 :(得分:2)

该解决方案如何?

冻结标题行,然后执行排序操作。

通过这种方式,选择包含电子表格标题的行很容易且易于阅读,并且您可以使用更简洁的语法来应用所有排序操作:

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("test1");
spreadsheet.setFrozenRows(1);
spreadsheet.sort(4);

参考

.setFrozenRows()

答案 1 :(得分:0)

您可能还会发现此“混乱”,但也许可以保存第一项,对列进行排序,然后再插入第一项?

关于日期/数字的有效排序方式,也许工作表检测到第一个单元格是唯一一个不同的单元格(不是数字或日期),然后不对其进行排序?