Подтвердить что ты не робот

Строки заголовка Apache POI

Кто-нибудь знает, как заблокировать строку в электронной таблице, созданной с помощью Apache POI 3.7? Блокировка означает, что я хочу, чтобы строка заголовка для столбцов оставалась видимой, когда пользователь прокручивает строки. Моя созданная таблица будет содержать 500 строк, и было бы полезно, если бы имена столбцов были всегда видны.

4b9b3361

Ответ 1

В случае, если вам нужно заморозить любую конкретную строку в любом месте листа, который вы можете использовать (внутри org.apache.poi.ss.usermodel.Sheet) (также доступно в POI 3.7)

Sheet.createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow)

В вашем случае, если вы хотите заморозить только ваши первые x строк, раздел int leftmostColumn, int topRow будет удален, и вы можете использовать только

Sheet.createFreezePane(int colSplit, int rowSplit)

например

sheet1.createFreezePane(0, 5); // this will freeze first five rows

Ответ 2

Чтобы сделать это, вы можете создать панель замораживания следующим образом:

workbook.getSheetAt(workbook.getActiveSheetIndex()).createFreezePane(0, 1);

Это заморозит первую строку на месте. Там есть другой метод с большим количеством опций, поэтому проверьте API.

Единственное, что нужно отметить, - это использовать книги XSSF - есть упоминание об исправлении в версии 3.8-beta3, в котором исправлено поведение замораживающих панелей с использованием таблиц XSSF:

50884 - XSSF и HSSF заморозки теперь ведут себя одинаково (poi-developers)

Я не знаю подробностей этого, но было бы интересно исследовать, находитесь ли вы в этой лодке.