簡體   English   中英

如何使用 POI 鎖定 Excel 工作表中的數據,使單元格沒有任何數據/工作表的其余部分未鎖定

[英]How to lock data in excel sheet using POI, leaving cells without any data / the rest of the sheet unlocked

我試圖鎖定 Excel 工作表中的數據,以便無法編輯已寫入工作表的數據,但將其余空白空間留出用於編輯/添加更多數據。

我已經嘗試通過整個工作表嘗試設置單元格樣式,使用下面提供的代碼但它只是相關的代碼,但它不起作用,這同意已經提出的這個問題

使用 Apache POI 在 Excel 中鎖定單列

XSSFCellStyle lockCell = getFileWriter().getWorkbook().createCellStyle();
lockCell.setLocked(true);
for(Row row : sheet){
    for(Cell mycell : row){
        mycell.setCellStyle(lockCell);
    }
}

相反:通過鎖定整個工作表並將相關行的單元格樣式設置為解鎖,我已經嘗試過,但是沒有任何數據的單元格沒有解鎖,所以它對我不起作用。 在任何情況下,應該解鎖單元格多遠和多寬,因為不知道添加未知數量的數據需要多少空間。

任何幫助或建議將不勝感激。

如果之前未顯式創建單元格,則行的迭代器將不返回任何單元格。 要解鎖單元格,它必須明確設置為解鎖樣式。 據我所知,更改默認值是不可能的。 所以我看到的唯一方法是為每一行創建單元格,直到某個列索引。

要解鎖沒有數據的單元格,假設您的工作表受到保護,您必須使用setDefaultColumnStyle方法設置要解鎖的列的默認樣式。

在您的情況下,您必須執行以下操作:

CellStyle editableStyle = workbook.createCellStyle();
editableStyle.setLocked(false);

for (int i = 0; i < numColumns; i++) {
   sheet.setDefaultColumnStyle(i, editableStyle);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM