java在对数据进行excel导出的时候是否可以设置某一个单元格为锁定的状态?

Workbook workbook = excelWorkbook.getWorkbook();
CellStyle style = workbook.createCellStyle();
style.setAlignment(CellStyle.ALIGN_CENTER);
//边框颜色和宽度设置
style.setBorderBottom(CellStyle.BORDER_THIN);
style.setBottomBorderColor(IndexedColors.BLACK.getIndex());
style.setBorderLeft(CellStyle.BORDER_THIN);
style.setLeftBorderColor(IndexedColors.BLACK.getIndex());
style.setBorderRight(CellStyle.BORDER_THIN);
style.setRightBorderColor(IndexedColors.BLACK.getIndex());
style.setBorderTop(CellStyle.BORDER_THIN);
style.setTopBorderColor(IndexedColors.BLACK.getIndex());
style.setFillBackgroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
//设置背景颜色
style.setFillForegroundColor(HSSFColor.RED.index);
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
//粗体字设置
Font font = workbook.createFont();
font.setBoldweight(Font.DEFAULT_CHARSET);
style.setFont(font);
workbook.getSheetAt(0).getRow(1).getCell(6).setCellStyle(style);
workbook.getSheetAt(0).getRow(1).getCell(7).setCellStyle(style);
workbook.getSheetAt(0).getRow(1).getCell(8).setCellStyle(style);
workbook.getSheetAt(0).getRow(1).getCell(10).setCellStyle(style);
workbook.getSheetAt(0).getRow(1).getCell(12).setCellStyle(style);
workbook.getSheetAt(0).getRow(1).getCell(13).setCellStyle(style);

如上代码可以设置单元格的颜色以及字体 请问应该如何把他锁定 无法对这个单元格进行操作

void setDataValidation(HSSFCell cell)
{
// 单元格设置数据有效性
DVConstraint constraint = DVConstraint.createNumericConstraint(DVConstraint.ValidationType.INTEGER, DVConstraint.OperatorType.GREATER_OR_EQUAL, "0", null);
//设置数据有效性加载在哪个单元格上。
//四个参数分别是:起始行、终止行、起始列、终止列
CellRangeAddressList regions = new CellRangeAddressList(cell.getRowIndex(), cell.getRowIndex(), cell.getColumnIndex(), cell.getColumnIndex());
//数据有效性对象
HSSFDataValidation data_validation = new HSSFDataValidation(regions, constraint);
//加入sheet
sheet.addValidationData(data_validation);
}

//调用上面方法
HSSFCell cell = row.getCell(5);
setDataValidation(cell); 调用这个方法 就会锁住你指定的列追问

那个 本人是初学的 你有办法在我写的那段代码上加入你写的这段代码吗 我不会。。不好意思啊

追答

你先把上面一个方法 拷贝到你的那个类里面,然后想在哪个行哪个列的单元格进行锁定,就 setDataValidation(cell);就行的,我写的很详细了~
setDataValidation( workbook.getSheetAt(0).getRow(1).getCell(6));比如这样
一般开发都讲究规范
你这里可以分解成
//取行
HSSFRow row =workbook.getSheetAt(0).getRow(1);
//取列
HSSFCell cell = row.getCell(6);
//添加样式
cell.setCellStyle(style);
//加锁
setDataValidation(cell);
希望对你有所帮助

追问

你上面的这个都是方法了 sheet 这个怎么来的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-12
下面是锁定某个单元格

//设置此列style为锁定
style.setLocked(true);
//设置到新单元格上
cell.setCellStyle(style);