- Сообщения
- 93
- Реакции
- 1
Всем привет.
Реализую такую задачу. Есть некий шаблон таблицы. В этой таблице может быть от 2 до n количество столбцов. Каждый столбец должен быть выравнен под контент находящийся в нем. Контент(текст) может располагаться только в 1 строчку. Тут то и возникает проблема, так как колонка не имеет метод fit или свойство auto size.
На ум приходит мысль реализовать это самому, по следующему алгоритму. Ставим для колонок флаг autoGrow в false, что бы текст не мог расположиться в 2 строчки. Проходим по колонкам и ячейкам в них, смотрим есть ли ячейки в которых не уместился текст, если есть, то допустим увеличиваем ширину колонки на 0.2 мм, опять проверяем, уместился ли текст и та к до тех пор, пока текст не уместится. Соответственно, для тех колонок, в которых текст уместился сразу, мы уменьшаем ширину, до тех пор, пока он перестанет умещаться.
По логике все работает, но что если у нас более 1000 таких таблиц и скорость работы скрипта очень важна.
Есть ли какие то варианты по оптимизации алгоритма, или же другие варианты решения проблемы?
Реализую такую задачу. Есть некий шаблон таблицы. В этой таблице может быть от 2 до n количество столбцов. Каждый столбец должен быть выравнен под контент находящийся в нем. Контент(текст) может располагаться только в 1 строчку. Тут то и возникает проблема, так как колонка не имеет метод fit или свойство auto size.
На ум приходит мысль реализовать это самому, по следующему алгоритму. Ставим для колонок флаг autoGrow в false, что бы текст не мог расположиться в 2 строчки. Проходим по колонкам и ячейкам в них, смотрим есть ли ячейки в которых не уместился текст, если есть, то допустим увеличиваем ширину колонки на 0.2 мм, опять проверяем, уместился ли текст и та к до тех пор, пока текст не уместится. Соответственно, для тех колонок, в которых текст уместился сразу, мы уменьшаем ширину, до тех пор, пока он перестанет умещаться.
По логике все работает, но что если у нас более 1000 таких таблиц и скорость работы скрипта очень важна.
Есть ли какие то варианты по оптимизации алгоритма, или же другие варианты решения проблемы?