Java poi导出设置 Excel某些单元格不可编辑

 小白的总结,大神勿喷;须要转载请说明出处,若是有什么问题,欢迎留言spa

1、需求:3d

一、某一列 、某一行或某些单元格不可编辑,其余列能够编辑code

2、期间遇到的问题blog

一、没法设置成不可编辑get

二、设置为不可编辑,导出后发现全部单元格均不可编辑;it

缘由:createCell();建立单元格后,单元格默认是锁定状态;protectSheet("密码");保护工做表是保护全部锁定的单元格;class

3、解决问题密码

       很少BB,直接上代码im

     HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("sheet名称"); HSSFCellStyle lockstyle = wb.createCellStyle(); lockstyle.setLocked(true);//设置锁定
 lockstyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); lockstyle.setFillForegroundColor(IndexedColors.RED.getIndex());//设置上锁的单元格背景色
 HSSFCellStyle unlockStyle=wb.createCellStyle(); unlockStyle.setLocked(false);//设置未锁定
        
        
        for(int i=0;i<10;i++){ HSSFRow row = sheet.createRow(i); for (int j = 0; j < 10; j++) { HSSFCell cell = row.createCell(j); cell.setCellStyle(unlockStyle);//默认是锁定状态;将全部单元格设置为:未锁定;而后再对须要上锁的单元格单独锁定
                 if(j==1){//这里能够根据须要进行判断;我这就将第2列上锁了
                     cell.setCellStyle(lockstyle);//将须要上锁的单元格进行锁定
                     cell.setCellValue("上锁了"); }else{ cell.setCellValue("没上锁了"); } } } //sheet添加保护,这个必定要不然光锁定仍是能够编辑的
        sheet.protectSheet("123456"); FileOutputStream os = new FileOutputStream("D:\\workbook.xls"); wb.write(os); os.close();

 

四:结果
总结

 

 

 

相关文章
相关标签/搜索