分析:查看源码发现sheet.protectSheet,可以锁定所有的单元格,需求只锁定标头。
思路
1.先对所有列进行解锁 sheet.setDefaultColumnStyle
2.titleRow.createCell(i).setCellStyle(lockStyle);对某一个单元格进行锁定。
// 创建HSSFWorkbook对象 HSSFWorkbook wb = new HSSFWorkbook(); // 建立sheet对象 HSSFSheet sheet = wb.createSheet(sheetName);
sheet.protectSheet("sailhero"); //设置Sheet保护,
//添加样式
CellStyle lockStyle=wb.createCellStyle();
lockStyle.setLocked(true);
unlockStyle=wb.createCellStyle();
unlockStyle.setLocked(false);
// 建立第一行 标题 HSSFRow titleRow = sheet.createRow(0);
//设置所有列解锁
//设置当前行上锁
for (int i = 0; i < fieldNames.size(); i++) {
sheet.setDefaultColumnStyle(i,unlockStyle);
titleRow.createCell(i).setCellStyle(lockStyle);
}