HSSFWorkbook poi创建锁定的单元格

来源:互联网 发布:sap软件费用 编辑:程序博客网 时间:2024/06/07 05:51

最近的项目中用到了poi方式创建excel文件,某些单元格要进行锁定,某些单元格需要进行填写选项的预设值,发现现在网上给出的锁定的代码基本上行不通,所以把自己写的整理出来分享一下。

全部的代码就不写出来了,只写主要的,免得看得头晕。

首先是要构建一个excel的对象,然后再插入工作簿,然后黑丝单元格

  HSSFWorkbook workbook = new HSSFWorkbook();//构建excel对象
  HSSFSheet sheet=workbook.createSheet(“sheet工作簿的名字”);   //创建工作簿
  sheet.protectSheet("edit");重点来了,这里是设置工作簿的保护属性,一定要设置,否则后面写多少setlocked(true)都无法锁定单元格

 设置之后的sheet内的所有单元格默认就是锁定的了,我们需要做的就是将那些我们不需要锁定的单元格setLocked(false);就可以了

   int count;
   int cellNum;
   HSSFRow row;//行
   HSSFCell cell;//单元格


//因为设置了所有单元格样式默认都是锁定的,所以需要新建一个单元格样式设置为非锁定,满足不用需要,见下面两句
   HSSFCellStyle unLockCellStyle = workbook.createCellStyl();

   unLockCellStyle.setLocked(false);

好了  下面就能循环创建单元格了

for (int i = 0; i <list.size(); i++)
            {
                row = sheet.createRow((int) i + 1); 
                实体 = list.get(i);
               
                // 创建普通单元格,这个单元格是最普通的锁定状态的
                cellNum =0;
                cell=row.createCell(cellNum);
                cell.setCellType(HSSFCell.CELL_TYPE_STRING);//单元格类型是string类型
                cell.setCellValue(String.valueOf(实体.getId()));
               //   -----默认就是锁定状态
               //创建非锁定可修改的单元格
              cellNum = row.getLastCellNum();
              cell = row.createCell(cellNum);
              cell.setCellType(HSSFCell.CELL_TYPE_STRING);
             cell.setCellValue(实体.getCurrentsituation());
             cell.setCellStyle(unLockCellStyle); //设置状态为非锁定,注意这里面的unlockCellStyle是我在上面设定好的,unLockCellStyle.setLocked(false);,千万别直接copy就用了
   

  }

 

0 0
原创粉丝点击