当前位置:   article > 正文

JAVA操作Excel表格部分不可编辑部分可编辑_java@excel列不能编辑

java@excel列不能编辑

一、需求:

1、某一列 、某一行或某些单元格不可编辑,其他列可以编辑

二、期间遇到的问题

1、无法设置成不可编辑

2、设置为不可编辑,导出后发现所有单元格均不可编辑;

原因:createCell();创建单元格后,单元格默认是锁定状态;protectSheet(“密码”);保护工作表是保护所有锁定的单元格;
解决:创建不需要保护的列设置为 unlockStyle.setLocked(false);//设置未锁定

三、解决问题

   不多BB,直接上代码
  • 1

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();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

四:结果

技术分享图片

技术分享图片
原文:http://www.bubuko.com/infodetail-2896152.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/170358
推荐阅读
相关标签
  

闽ICP备14008679号