Вы не можете заморозить средний ряд, не заморозив ряды над ним.
Предположим, у вас есть 100 строк, а ваша строка заголовка находится в строке 50. Вы можете ожидать, что только строка 50 будет заблокирована, так что при прокрутке от строки 1-49 все прокручивается вверх, а когда она достигает строки 50, 50-я строка прокручивается до вверху и остается там при прокрутке строк 51-100.
Но есть обходной путь. Что вы можете сделать, так это сгруппировать строки, а затем заморозить их.
Сначала сгруппируйте строки от 1 до 49, а затем закрепите панели от 1 до 50. Теперь пользователь может свернуть группу, а затем работать с таблицей с заблокированным заголовком таблицы вверху.
sheet.groupRow(0, 49);
sheet.createFreezePane(0, 50);
Однако есть небольшая загвоздка. MS Excel не позволит развернуть / свернуть группу, если лист защищен. Для этого вам нужно написать макрос.