2013-03-07 157 views
1

我需要导出一个列表,使其能够保护(只读)一些单元格或列。Python xlsx单元保护(锁)

问题是我使用openpyxl python模块写入xlsx,但我认为只有xlwt具有单元保护功能。而xlwt似乎不支持xlsx。

任何人都找到了解决方法?

+0

也许这将帮助你:http://stackoverflow.com/questions/8526296/python-xlwt-making-a-column-readonly-cell-protect – 2013-03-07 13:16:06

+0

@ ColinO'Coal我知道xlwt有支持,但不保存xlsx格式,只有xls。 – balsagoth 2013-03-07 14:24:24

回答

1

最近Python模块XlxsWriter允许你写XLSX文件,并添加工作表单元格保护(除其他事项外):

from xlsxwriter.workbook import Workbook 

workbook = Workbook('protection.xlsx') 
worksheet = workbook.add_worksheet() 

# Create a cell format with protection properties. 
unlocked = workbook.add_format({'locked': False}) 

# Format the columns to make the text clearer. 
worksheet.set_column('A:A', 40) 

# Turn worksheet protection on. 
worksheet.protect() 

# Write a locked and unlocked cell. 
worksheet.write('A1', 'Cell B1 is locked. It cannot be edited.') 
worksheet.write('A2', 'Cell B2 is unlocked. It can be edited.') 

worksheet.write_formula('B1', '=1+2') # Locked by default. 
worksheet.write_formula('B2', '=1+2', unlocked) 

workbook.close() 

请参阅该文档的全部细节protect()部分。您可以像往常一样download it from PyPI或从GitHub repo得到它。

Cell Protection Example

+0

太好了,我没有找到这个项目!我会尝试你的模块。谢谢 – balsagoth 2013-03-08 09:08:23