【问题标题】:Google script - Sheets - sort - how to avoid sorting the first row?谷歌脚本 - 表格 - 排序 - 如何避免对第一行进行排序?
【发布时间】:2020-07-15 23:16:12
【问题描述】:

一件让我头疼的蠢事。我相信你会笑,但我该怎么做 排序工作表而不包括排序中的第一行?

这是我的代码:

 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});

谢谢

【问题讨论】:

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


    【解决方案1】:

    这个解决方案怎么样:

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

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

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

    参考

    .setFrozenRows()

    【讨论】:

    • 冻结行不会将其排除在排序之外
    • 它在我的电子表格中。您可以发布一个包含您要排序的数据的测试电子表格吗?
    • 对我来说也一样...冻结该行并不排除它被排序
    • 冻结行可以防止它在 GUI 中排序...有趣的是它不适用于脚本
    【解决方案2】:

    您可能也会发现这个“混乱”,但也许您可以保存第一项,对您的列进行排序并重新插入第一项?

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

    【讨论】:

      猜你喜欢
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 2013-12-22
      • 2019-06-29
      • 2023-04-06
      • 2021-11-11
      • 1970-01-01
      相关资源
      最近更新 更多