CourseOrchestra / xylophone

Excel reports generating library

Home Page:https://courseorchestra.github.io/xylophone/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Копирование избыточного числа строк из шаблона

Midest opened this issue · comments

(и, вероятно, лишняя проверка для столбцов)

При использовании библиотеки столкнулся с проблемой копирования лишних строк. Пример данных для теста прилагаю.

Проблема оказалась в POIReportWriter: при вычислении rowFinish берется максимум из значений, которые обозначают разные вещи — номер строки в шаблоне и номер последней строки результата на текущей итерации. И дальше значение интерпретируется как номер строки в шаблоне. В результате с ростом числа строк в формирующемся документе растет число скопированных строк, и может быть скопировано больше, чем нужно.

Из лога изменений не понял, откуда там максимум появился, но тестов на это, видимо, нет, потому что изменение на номер строки в шаблоне:

int rowFinish = range.bottom();

исправило проблему на моем примере и не уронило тесты.

Дальше по коду аналогичный выбор для столбцов, но минимума. Он кажется избыточным, дальше проверка на null есть, так что вероятно достаточно будет (также не влияет на тесты):

int colFinish = range.right();

Кстати, спасибо за библиотеку, пригодилась. :)