IZennoTable table = project.Tables["Table"]; // таблица проекта
int i = 0; // номер столбца, по которому сортировать
List<string> tmpList = new List<string>(); // создаем темповый список
Enumerable.Range(0, table.RowCount).ToList().ForEach(x => tmpList.Add(string.Join(";", table.GetRow(x)))); // добавляем в список все строки из таблицы, ";" - разделитель столбцов
tmpList = tmpList.OrderBy(s => s.Split(';')[i].Length).ThenBy(s => s.Split(';')[i]).ToList(); // сортируем строки списка по возрастанию
table.Clear(); // очищаем таблицу
Enumerable.Range(0, tmpList.Count).ToList().ForEach(x => table.AddRow(tmpList[x])); // добавляем в таблицу все строки из списка
Вроде, все что там написано, это до ввода "Сортировать как числа, если возможно".Функция работает, но скорее всего в этом дело http://zennolab.com/discussion/threads/sortirovka-spiska-cifry.21699/#post-144201. Хотя галочку поставить "Сортировать как числа" можно, хз короче.
Пришлите пож-ста пример данных, которыми таблица заполнена.Блин, реально глючный инструмент.
Числа корректно вписаны, скрыл первую строку (заголовков) -- а всё-равно не сортирует нормально.
Как бы достучаться с этим до разработчиков?
Думаю таблицами многие пользуются. Важный инструмент
Пришлите пож-ста пример данных, которыми таблица заполнена.
Попробуйте очистить таблицу от пустых строк и только потом сортировать как числа.функционал использую именно с гуглотаблицей.
настройки так: https://prnt.sc/v5skv0
Сработало. При условии если в столбце по которому сортировка нет пустых строк.Попробуйте очистить таблицу от пустых строк и только потом сортировать как числа.
стремный костыльесли без кода и без кучи кубиков, то после создания заголовков можно привязаться к другой зеннотаблице, где галка есть
ну тогда кодинг в помощь) там можно красиво сделатьстремный костыль
Только через костыли(( Примерно так:
Примечание: В столбце, по которому происходит сортировка, должны быть числа в формате 1,2,3...999 (!!!без нулей в начале, типа 001,0999 и т.п).C#:IZennoTable table = project.Tables["Table"]; // таблица проекта int i = 0; // номер столбца, по которому сортировать List<string> tmpList = new List<string>(); // создаем темповый список Enumerable.Range(0, table.RowCount).ToList().ForEach(x => tmpList.Add(string.Join(";", table.GetRow(x)))); // добавляем в список все строки из таблицы, ";" - разделитель столбцов tmpList = tmpList.OrderBy(s => s.Split(';')[i].Length).ThenBy(s => s.Split(';')[i]).ToList(); // сортируем строки списка по возрастанию table.Clear(); // очищаем таблицу Enumerable.Range(0, tmpList.Count).ToList().ForEach(x => table.AddRow(tmpList[x])); // добавляем в таблицу все строки из списка
Сортировка работает, спасибо.Только через костыли(( Примерно так:
Примечание: В столбце, по которому происходит сортировка, должны быть числа в формате 1,2,3...999 (!!!без нулей в начале, типа 001,0999 и т.п).C#:IZennoTable table = project.Tables["Table"]; // таблица проекта int i = 0; // номер столбца, по которому сортировать List<string> tmpList = new List<string>(); // создаем темповый список Enumerable.Range(0, table.RowCount).ToList().ForEach(x => tmpList.Add(string.Join(";", table.GetRow(x)))); // добавляем в список все строки из таблицы, ";" - разделитель столбцов tmpList = tmpList.OrderBy(s => s.Split(';')[i].Length).ThenBy(s => s.Split(';')[i]).ToList(); // сортируем строки списка по возрастанию table.Clear(); // очищаем таблицу Enumerable.Range(0, tmpList.Count).ToList().ForEach(x => table.AddRow(tmpList[x])); // добавляем в таблицу все строки из списка