2015-11-04 4 views
0

Я работаю над экспортом некоторых данных в Excel с использованием библиотеки Java POI. Некоторые из этих ячеек должны быть доступны только для чтения. Я делаю это с помощью:Как заблокировать только содержимое ячейки в листе Excel

CellStyle lockedCell = workbook.createCellStyle(); 
lockedCell.setLocked(true); 
cell.setCellStyle(lockedCell); 

и после него:

workbook.getSheetAt(workbook.getActiveSheetIndex()).protectSheet(""); 

Она работает довольно хорошо, но есть одна проблема - я не могу изменить ширину столбцов, содержащих заблокированные ячейки.

Возможно ли заблокировать только содержимое ячеек, чтобы я мог изменять ширину столбцов?

ответ

0

Я не думаю, что возможно только разрешить модификации ширины пользователя на заблокированных ячейках.

Что вы можете сделать вместо этого, после заполнения данных вызовите autoSizeColumn(colNumber); на листе для каждого заполненного столбца.

int colMaxLength = workbook.getActiveSheetIndex().getRow(0).getLastCellNum(); 
HSSFSheet activeSheet = workbook.getSheetAt(workbook.getActiveSheetIndex()); 
for(int i = 0 ; i < colMaxLength ; i++){ 
    activeSheet.autoSizeColumn(i); 
} 
Смежные вопросы