use*_*028 5 sorting google-sheets google-apps-script
一件让我头疼的蠢事。我相信您会笑,但是如何在不包含排序中第一行的情况下对工作表进行排序?
这是我的代码:
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("test1");
spreadsheet.sort(4); // or spreadsheet.sort(4,false); or spreadsheet.sort(4,true);
Run Code Online (Sandbox Code Playgroud)
这将按 D 列排序,但也会对第一行进行排序。D 列仅包含文本。
有趣的是,如果您对仅包含数字/日期的列进行排序,它会起作用并且确实避免了对第一行进行排序。
那么,如何对包含文本的列进行排序并避免对第一行进行排序?
我知道我可以设置从 A2 开始直到最后一列的范围,但这看起来“混乱”。像这样的东西
spreadsheet.getRange('A2:AI').sort({column: 4, ascending: true});
Run Code Online (Sandbox Code Playgroud)
谢谢
这个解决方案怎么样:
冻结标题行,然后执行排序操作。
通过这种方式,可以轻松且可读地选择包含电子表格标题的行,并且您可以使用更清晰的语法应用所有排序操作:
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("test1");
spreadsheet.setFrozenRows(1);
spreadsheet.sort(4);
Run Code Online (Sandbox Code Playgroud)
小智 0
您可能也会发现这“混乱”,但也许您可以保存第一项,对列进行排序并插回第一项?
关于日期/数字的工作排序,也许工作表检测到第一个单元格是唯一不同的单元格(不是数字或日期),然后不对其进行排序?