О пользовательских списках сортировки

Автор eeigor, 18 июня 2021, 09:59

0 Пользователи и 1 гость просматривают эту тему.

eeigor

#15
Ну, вот: всё-таки "несколько списков", не взирая на имя AddCustomList.
Это и был вопрос. Спасибо.
Алгоритм "угадывания" очень прост и проблем не вызвал.


If HasUnoInterfaces(ListArray, "com.sun.star.sheet.XSheetCellRange") Then
    oRange = ListArray
    nRows = oRange.Rows.Count
    nCols = oRange.Columns.Count

    If IsMissing(ByRow) Then
        ByRow = False Or nCols > nRows
    End If
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

#16
Следует добавить, что через интерфейс пользователя "Списки сортировки" (Sort Lists) можно скопировать список-дубликат с листа, и он будет принят, но в Excel при добавлении дубликата возникает ошибка.

Остался невыясненным вопрос с максимальной длиной списка.
В Excel при ручном вводе длина составляет 255 символов, при копировании с листа - примерно (!) 2000 символов (где-то 1950-2000). Как работает механизм усечения (truncate) в Excel осталось невыясненным. В LO Calc тоже как-то работает... :) Но то, что при копировании с листа допустимая длина списка резко возрастает, это знать полезно.
Однако большие списки сортировки создавать нецелесообразно, а надо хранить их на листе и вычислять порядковый номер элемента списка, чтобы подставить его в дополнительный столбец диапазона данных. По дополнительному столбцу и надо сортировать (пример тут).
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community