2016-07-13 7 views
4

Я использую lucee-spreadsheet, что является отличным инструментом. Я делаю очень большую таблицу (несколько листов в книге с тысячами строк на листе). Все работает так, как ожидалось. Я заполнил листы данными и создал пустые строки между группами, которые хочет клиент. Сейчас я возвращаюсь и пытается применить форматирование, и я бегу в ошибку:Ошибка при форматировании таблицы lucee: максимальное количество стилей ячеек было превышено

The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook

Проблема заключается в том, что я только пытался применить один стиль:

spreadsheet.formatColumns(workbook=workbook, format={dataformat="$##,####0.00"},range='5-20');

Есть ряд других стилей, которые мне нужно применить. Я предполагаю, что, поскольку существует более 500 строк, и этот стиль применяется к 16 столбцам, этот стиль фактически форматирует каждую ячейку, а не столбец.

Есть ли другой способ, которым я мог бы быть или должен применять этот стиль?

+0

Спасибо, что сообщили об этом. Я поднял билет и посмотрю на него, как только смогу: https://github.com/cfsimplicity/lucee-spreadsheet/issues/84 – CfSimplicity

ответ

5

Глядя на lucee-spreadsheet source code, formatColumns создает новый стиль ячейки для каждой ячейки, которую он форматирует. К сожалению, это субоптимально, и ограничения в стилях Апач по стилям в электронной таблице попадают в формат электронных таблиц Excel 97 (HSSF). Было бы лучше использовать formatCellRange, который повторно использует стили ячеек, до тех пор, пока разработчики не реализуют лучшую функцию formatColumns, чтобы воспользоваться повторным использованием стиля.

+1

Я сторонник. Спасибо за указание на это. Эта часть кода была унаследована от предыдущего проекта, но я подниму билет и посмотрю, может ли он быть улучшен по вашему мнению. Еще раз спасибо. – CfSimplicity

+0

Благодарим вас обоих, я переключусь на formatCellRange и посмотрю обновление cfSimplicity. – Lance

+1

Все это было исправлено в библиотеке @CfSimplicity. УДИВИТЕЛЬНЫЙ инструмент – Lance