当前位置:   article > 正文

Java POI 导出Excel,设置单元格无法编辑, 开启工作表保护后,依然可以筛选, 冻结行列不移动_cellstyle.setlocked

cellstyle.setlocked

1. 设置单元格无法编辑

  1. // 单元格样式锁定 不可编辑
  2. CellStyle lockStyle = workbook.createCellStyle();
  3. lockStyle.setLocked(true);
  4. // 单元格样式不锁定
  5. CellStyle unlockStyle = workbook.createCellStyle();
  6. lockStyle.setLocked(false);
  7. // 创建行
  8. Row row = sheet.createRow(rownum);
  9. // 创建一个单元格
  10. Cell cell = row.createCell(columnnum);
  11. // 单元格设置为不可编辑
  12. cell.setCellStyle(lockStyle);
  13. // 单元格设置为可编辑
  14. cell.setCellStyle(unlockStyle);
  15. // 只有开启保护后,锁定样式才会生效,然后希望单元格依然可以编辑的话,必须设置为unlockStyle
  16. sheet.protectSheet("123456");

2. 工作表开启后,筛选过滤无法使用

  1. // 行A1, 列A1的开启刷选
  2. CellRangeAddress c = CellRangeAddress.valueOf("A1:A1");
  3. sheet.setAutoFilter(c);
  4. // 高版本的POI 锁定的筛选关闭
  5. sheet.lockAutoFilter(false);
  6. // 低版本的POI 没有 lockAutoFilter(Boolean var) 方法, 使用以下方式
  7. CTWorksheet ctWorksheet = ((XSSFSheet) this.sheet).getCTWorksheet();
  8. if (ctWorksheet.getSheetProtection() == null) {
  9. ctWorksheet.setSheetProtection(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetProtection.Factory.newInstance());
  10. }
  11. // 设置保护的工作表自动过滤锁定关闭
  12. ctWorksheet.getSheetProtection().setAutoFilter(false);
  13. ctWorksheet.getSheetProtection().setFormatCells(false);
  14. ctWorksheet.getSheetProtection().setFormatColumns(false);
  15. ctWorksheet.getSheetProtection().setFormatRows(false);

3. 冻结行列无法移动

  1. sheet.createFreezePane(7, 2, 0, 0);
  2. // createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow)
  3. // 方式参数解释
  4. // colSplit: 冻结列数
  5. // rowSplit: 冻结行数
  6. // leftmostColumn: 冻结开始列
  7. // topRow:冻结开始行

 

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

闽ICP备14008679号