2011-12-15 74 views
5

有沒有辦法在python xlwt中保護特定單元格只讀/寫入?Python xlwt - 只讀列(單元格保護)

我知道有一個cell_overwrite_ok標誌不允許覆蓋單元格的內容(所有單元格),但是可以在逐個單元格的基礎上完成。

感謝, 孫

回答

9

Excel單元格有鎖定的屬性,默認情況下啓用。但是,僅當工作表的保護屬性也設置爲True時,纔會調用此屬性。如果工作表未受保護,則鎖定的屬性將被忽略。

因此,您的問題不是最好的框爲如何使細胞只讀。相反,問題是如何在保護工作表後使單元格可編輯。

...在這裏你是:

from xlwt import Workbook, Worksheet, easyxf 

# ... 

# Protect worksheet - all cells will be read-only by default 
my_worksheet.protect = True # defaults to False 
my_worksheet.password = "something_difficult_to_guess" 

# Create cell styles for both read-only and editable cells 
editable = easyxf("protection: cell_locked false;") 
read_only = easyxf("") # "cell_locked true" is default 

# Apply your new styles when writing cells 
my_worksheet.write(0, 0, "Can't touch this!", read_only) 
my_worksheet.write(2, 2, "Erase me :)", editable) 

# ... 

單元格樣式(easyxf類)也宣告背景顏色,字體粗細等

乾杯有用。

+0

如果我必須密碼保護整個excel文件該怎麼辦? – 2017-08-21 13:42:41