You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Google Apps Script刷新表格排序?已有刷新筛选脚本

实现Google表格排序规则的刷新脚本

我已经用下面的脚本实现了表格筛选的刷新功能:

function refreshFilter() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dashboard");
  const filter = sheet.getFilter();

  if (filter) {
    const range = filter.getRange();
    for (let i = range.getColumn(), maxCol = range.getLastColumn(); i <= maxCol; i++) {
      const filterCriteria = filter.getColumnFilterCriteria(i);
      if (filterCriteria) {
        filter.setColumnFilterCriteria(i, filterCriteria);
      }
    }
  }
}

现在想实现同样的排序刷新操作,不用内置SORT()函数,想用脚本实现。知道有range.sort()方法,但在用getSortSpecs()获取当前排序规则时遇到了困难。

排序刷新的实现脚本

直接获取当前表格已设置的排序规则,再重新应用一次即可完成刷新,完整代码如下:

function refreshSort() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dashboard");
  const sortSpecs = sheet.getSortSpecs();
  
  // 存在排序规则时重新应用
  if (sortSpecs.length > 0) {
    sheet.sort(sortSpecs);
  }
}

核心说明

  • sheet.getSortSpecs() 会返回当前表格的所有排序规则数组,每个规则对象包含columnIndex(目标列索引)、ascending(是否升序)等关键信息
  • 将获取到的排序规则数组直接传入sheet.sort()方法,就能重新执行一次排序,达成和刷新筛选一致的效果
  • 若表格未设置任何排序规则,函数会直接跳过执行,不会触发报错

内容的提问来源于stack exchange,提问作者ihorc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 14:17:31