I think that you may be looking at the worng feature of the cell.

Are you saying that you want to enter a value into a cell when you are
preparing the sheet and to prevent the user from subsequently making any
changes to that value?

If this is the case then you need to create an HSSFCellStyle object that has
it's locked attribute set. This style needs to be applied to the cell that
you want to protect and the worksheet itself then needs to be protected.

This is the sort of code you will need to use;

HSSFWorkbook workbook = new XSSFWorkbook();

// Cell styles. Note the setLocked(true) method call.
HSSFCellStyle lockedNumericStyle = workbook.createCellStyle();
lockedNumericStyle.setAlignment(XSSFCellStyle.ALIGN_RIGHT);
lockedNumericStyle.setLocked(true);

HSSFSheet sheet = workbook.createSheet("Protection Test");
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue(100);
cell.setCellStyle(lockedNumericStyle);

// This line should cause all locked cells to be protected,
// the user should not be able to change the cells
// contents.
sheet.protectSheet("password");

The password makes it possible to remove the protection from the sheet and
makes it possible then for the locked cells to be modified.

Data Vaidations are a different feature; they are used to ensure that the
value a user enters into a cell is within a specified range of values.

Hope that helps

Yours

Mark B



Nagineni wrote:
> 
> 
> Hi,
> 
> Can any one help me to make excel cell as read only.After creating
> workbook using POI,want make sure some of the columns in a sheet are read
> only.
> 
> I'm using following code to achieve this but it not showing the cell
> value.But when I try to edit the cell it is prompting error.
> 
> 
> CellRangeAddressList addressList = new CellRangeAddressList(3, 3, i, i);
> DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(new
> String[] {"ReadOnlyCell"});
> HSSFDataValidation dataValidation = new HSSFDataValidation(addressList,
> dvConstraint);
> dataValidation.setSuppressDropDownArrow(true);
> dataValidation.setEmptyCellAllowed(false);
> dataValidation.createErrorBox("Error", "Cell can not be editable");
> sheet.addValidationData(dataValidation);
> 
> Please let me know if any other solutions for this.
> 
> Regards,
> Naga.
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/How-to-make-readonly-cell-tp24367500p24367900.html
Sent from the POI - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
For additional commands, e-mail: user-h...@poi.apache.org

Reply via email to