我正在創建一個Excel文件,它應該是隻讀的。要做到這一點,我使用: (sheetName).getSettings().setProtected(true);
添加每個新工作表。對使用Java創建的Excel文件的訪問權限
只有具有管理員權限的人可以得到完全訪問文件,所以以後確認用戶具有管理員權限怎麼辦: (workbookName).getSheet(0).getSettings().setProtected(false);
有人用管理員權限打開該文件後,它不是隻讀了,直到普通用戶再添加一些內容 - .getSettings().setProtected(true);
。換句話說,有人可以在管理員訪問它之後和非管理員訪問之前更改該文件。我不知道如何繞過它,也許你可以幫助我?
- 編輯 -
用戶都將數據添加到Excel文件,填充細胞信息文件 - 讀取的工作簿,複製,添加一些信息,寫入和關閉工作簿。非管理員用戶可以直接打開它以查看他們添加的內容,或查看其他用戶添加的內容,但他們不應該能夠更改文件中的任何內容。
這是一個類似嚮導的應用程序,向用戶詢問數據,然後將單元格添加到文件中。添加數據的方法之一是here。該文件收集用戶的個人信息。該應用程序僅用於添加數據,而不用於訪問它。用戶只能通過雙擊輸出直接訪問文件,並且只能查看數據。管理員可以更改文件,其他用戶不應該這樣做。
http://stackoverflow.com/questions/2609301/password-protected-excel-file顯示如何循環通過工作表。要解決非管理員用戶的問題,可以在每次打開文件時設置保護(取決於訪問級別,爲true/false)。 – 2012-04-16 23:21:03
感謝您的鏈接,我整理了循環通過牀單。然而,關於您在訪問問題上的建議,我看不到我該怎麼做。每次修改文件後,我都會設置保護(如果非管理員用戶更改它,則爲'true',如果管理員爲'false')。問題在於,在管理員將保護設置爲「false」並且非管理員將其設置回「true」之前,某人可以「手動」(而不是通過軟件)打開並修改該文件。 – Hurdler 2012-04-17 19:48:10
如果您知道管理員何時完成,那麼您可以重新啓用該保護功能 – 2012-04-17 21:55:32