#google-apps-script #google-sheets #google-sheets-formula
Вопрос:
У меня есть таблица gsheet со столбцами: version, valueA
Я написал функцию приложения-скрипта, которая сравнивает две версии:
function sortAnalyticsVersionsDesc() {
var versions = activeSpreadsheet.getRangeByName(MY_RANGE).getValues().filter(item => item[0] != "");
versions.sort(_compareVer);
}
Я хочу valueA
, чтобы они были отсортированы соответствующим образом.
Как я могу использовать этот обычай comperator
для сортировки всей таблицы в соответствии с этой логикой?
Из документации это кажется невозможным.
sortSpecObj The columns to sort by
не предоставляет возможности предоставить пользовательскую функцию сортировки.
Мне нужно скопировать всю таблицу в память? Но даже тогда — как мне отсортировать матрицу?
Ответ №1:
Я должен взять всю таблицу и переписать ее заново.
function sortAnalyticsVersionsDesc() {
var lines = activeSpreadsheet.getRangeByName(ANALYTICS_DATA_TABLE).getValues().filter(item => item[0] != "");
lines = lines.sort(_compareLinesWithVer);
activeSpreadsheet.getRangeByName(ANALYTICS_DATA_TABLE).setValues(lines)
}
function _compareLinesWithVer(a, b) {
return _compareVer(a[2], b[2]);
}
function _compareVer(a, b) {
...}