如何使用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
相关产品推荐
相关产品推荐

