900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Java POI 导出Excel 设置单元格无法编辑 开启工作表保护后 依然可以筛选 冻结行列不移动

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

时间:2019-04-19 02:51:27

相关推荐

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

1. 设置单元格无法编辑

// 单元格样式锁定 不可编辑CellStyle lockStyle = workbook.createCellStyle();lockStyle.setLocked(true);// 单元格样式不锁定 CellStyle unlockStyle = workbook.createCellStyle();lockStyle.setLocked(false);// 创建行Row row = sheet.createRow(rownum); // 创建一个单元格Cell cell = row.createCell(columnnum);// 单元格设置为不可编辑cell.setCellStyle(lockStyle);// 单元格设置为可编辑cell.setCellStyle(unlockStyle);// 只有开启保护后,锁定样式才会生效,然后希望单元格依然可以编辑的话,必须设置为unlockStylesheet.protectSheet("123456");

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

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

3. 冻结行列无法移动

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。