有沒有辦法鎖定用戶編輯的某些單元格?我曾嘗試以下:鎖定JXL生成的Excel文檔中的單元格
WritableCellFormat cf = new WritableCellFormat();
cf.setLocked(true);
sheet.addCell(new Number(col, row, value, cf));
然而,這似乎並不具有生成的電子表格上的任何影響,即當該Excel文件被打開單元格的內容仍然可以改變。
有沒有辦法鎖定用戶編輯的某些單元格?我曾嘗試以下:鎖定JXL生成的Excel文檔中的單元格
WritableCellFormat cf = new WritableCellFormat();
cf.setLocked(true);
sheet.addCell(new Number(col, row, value, cf));
然而,這似乎並不具有生成的電子表格上的任何影響,即當該Excel文件被打開單元格的內容仍然可以改變。
您必須爲每張紙「激活」保護。我不知道這應該如何完成。我發現的方法是
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);
這裏是保護細胞,而不使用在accepted answer
1.過時方法創建一個WritableCellFormat對象的一般步驟和當你添加你想要一個小區要設置鎖定爲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);
謝謝,這個作品! (儘管顯式定義未鎖定的單元格有點不方便,因爲我通常只需要一個或兩個單元格來鎖定) – Janne 2011-02-23 06:27:03