Как отсортировать таблицу google-листа по столбцу номера версии

#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) {
    
    ...}