[英]Custom Sort in Google Sheets
我正在尝试使用 Google 表格的 App Script 自定义排序列表,基本上我有一个月份列表,我希望它们按月份顺序显示为一月、二月、三月……。 这是我的清单的一个例子
我在 App Script 中使用的代码是:
var sheet = SpreadsheetApp.getActive().getSheets()[0];
var range = sheet.getRange(1,3,sheet.getLastRow(),1);
var values = range.getValues();
var sortBy = {
"January": 1,
"February": 2,
"March": 3,
"April": 4,
"May": 5,
"June": 6,
"July": 7,
"August": 8,
"September": 9,
"October": 10,
"November": 11,
"December": 12
};
values.sort(function(a,b){
return sortBy[[a][0]] - sortBy[[b][0]];
});
如何将 App Script 中的此代码连接到我的电子表格,以便在几个月内进行排序。
尝试:
values.sort(([a],[b]) => sortBy[a] - sortBy[b]);
range.setValues(values);
function sortMonths() {
const mA = [...Array.from(new Array(12).keys(),x => Utilities.formatDate(new Date(new Date().getFullYear(), x , 1),Session.getScriptTimeZone,"MMMM"))];
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1');
const vs = sh.getRange(1,1,sh.getLastRow()).getValues().sort((a,b) => {
let vA = mA.indexOf(a[0]);
let vB = mA.indexOf(b[0]);
return vA-vB;//swap for descending
});//Data in column A
sh.getRange(1,1,vs.length,vs[0].length).setValues(vs);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.