2014-02-21 2 views
0

Я использую apache POI для автоматического перевода данных из файла xls в файл xlsm после некоторого процесса. У меня есть сильное ограничение времени выполнения, и настройки на XSSFCellStyle очень трудоемки.XSSFCell Стиль кажется медленным

На самом деле у меня есть файлы с тысячами ячеек для переноса и метода на boder (SetBorder & SetBorder color) от 3 мс до 5 мс для выполнения каждого из 1 ячейки. В моем контексте 1300 тысяч требуется выполнить 30 секунд.

В графике на JProfiler мы видим, что наибольшее время тратить на эти методы находится в состоянии ожидания.

Это нормально для вас или нет?

Большое спасибо!

+0

нет обычный. нам нужно будет увидеть ваш код. Но в целом, когда я использовал POI, я старался сделать стили максимально возможными (ООП). настройте классы, которые имеют полный стиль ячейки, а не просто определяют его через структуру принятия решений. – woodlumhoodlum

+0

Стили ячеек живут на уровне рабочей книги и должны быть повторно использованы между ячейками, которые имеют один и тот же стиль. Убедитесь, что вы создаете только один стиль ячейки для уникального стиля ячейки, а не по одной ячейке! – Gagravarr

+0

спасибо, мне нужно переработать мой алгоритм, я думаю – Wodric

ответ

0

in например org.apache.poi.xssf.model.StylesTable.putStyle(XSSFCellStyle) они пытаются найти xfs дважды.

Используется ArrayList.

Чем больше ячеек, тем медленнее эта операция.

Если вы можете, старайтесь избегать множества дат.

Смежные вопросы