有没有办法锁定用户编辑的某些单元格?我尝试过以下方法:
WritableCellFormat cf = new WritableCellFormat();
cf.setLocked(true);
sheet.addCell(new Number(col, row, value, cf));
但是,这似乎对生成的电子表格没有任何影响,即在Excel中打开文件时仍可以更改单元格内容。
答案 0 :(得分:5)
你必须为每张纸“激活”保护。我不应该知道应该怎么做。我找到的方法是
sheet.setProtected(true);
但显然不再推荐这种方法。所以你应该尝试找一些新的。
编辑: 抱歉,是我的错。这会锁定工作表中的每个单元格。
编辑2: 如果你锁定entiry表然后解锁可编辑的单元格,它对我有用。
sheet.getSettings().setProtected(true);
WritableCellFormat unlocked = new WritableCellFormat();
unlocked.setLocked(false);
Label l = new Label(0, 0, "", unlocked);
sheet.addCell(l);
答案 1 :(得分:2)
以下是在不使用accepted answer的弃用方法的情况下保护单元格的一般步骤 1.创建WritableCellFormat对象并将locked设置为false 2.当您添加要解锁的单元格时,请在addCell(...)方法中调用WritableCellFormat 3.在工作表上调用getSettings以获取SheetSettings对象并调用setProtected(true)以保护工作表,并通过扩展名保护优先级为excel的受保护单元格为所有单元格。
WritableCellFormat cellFormat = new WritableCellFormat();
cellFormat.setLocked(false)
WritableSheet sheet = Worksheet.createSheet();
//Create a cell that is protected and a cell that is not protected
sheet.addCell(new Label(col1, row, "My Locked Cell");
sheet.addCell(new Label(col2, row, "My Unlocked Cell", cellFormat);
//Protect the sheet so that locked cells are locked and unlocked cells are unlocked
sheet.getSettings().setProtected(true);
答案 2 :(得分:0)
在较新版本中,您应该这样做
sheet.protectSheet("password");
忽略了模板文件也应该受到保护。否则,在LibreOffice中,保护功能对我而言无法正常工作,工作表看起来像“被吊死”,您甚至无法单击单元格。明确提出了受保护的问题,但是您应该选中“使用受保护的单元”或类似的复选框。 附言我使用密码进行了保护,但未在最终文件中使用(密码来自代码)