google-apps-script - 创建脚本以将自定义排序范围应用于 Google 表格
问题描述
我有一个包含数百个事件的 Google 表格。我在工作时会定期更改排序,但“最终”排序顺序是按国家 > 地区 > 城市 > 开始日期(由同名的列标题定义)。
我可以通过 Data > Sort Range 命令应用它,但我想知道是否可以创建一个可以为我运行此功能的脚本或“按钮”?
解决方案
function sort() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet Name');
const headerrow = 1;
const hA = sh.getRange(headerrow, 1, 1, sh.getLastColumn()).getValues()[0];
const startrow = 2;
let col = {};
hA.forEach((h, i) => { col[h] = i + 1 });
sh.getRange(startrow, 1, sh.getLastRow(), sh.getLastColumn()).sort([{ column: col['Country'], ascending: true }, { column: col['Region'], ascending: true }, { column: col['City'], ascending: true }, { column: col['Start Date'], ascending: true }]);
}
推荐阅读
- haskell - Haskell:为什么以下顺序运行?
- android - “错误:包 DownloadTask 不存在” FileDownloader 库
- android - NDK 代码覆盖率
- apostrophe-cms - 撇号 beforeSave 不起作用
- python - python - 期望一个缩进块while循环
- android - INSTALL_PARSE_FAILED_NO_CERTIFICATES:包 /data/app/vmdl2005941423.tmp/0_base-master 在 AndroidManifest.xml 条目中没有证书。
- html - 引导按钮仅在 ios safari 和 ios chrome 上具有奇怪的行为
- c# - ASP.NET ImageButton 点击事件
- node.js - 一个对象的属性值将被用作 Handlebars/EJS 模板引擎中另一个对象的属性
- javascript - 替换 a 的文本
- 有图像