Python xlwt - making a column readonly (cell protect)

后端 未结 1 1794
南笙
南笙 2021-01-13 05:14

Is there a way to make a particular cell read-only/write protected in python xlwt?

I know there\'s is a cell_overwrite_ok flag which does not allow to overwrite cont

相关标签:
1条回答
  • 2021-01-13 05:32

    Excel cells have a locked attribute that is enabled by default. However, this attribute is only invoked when the worksheet's protection attribute is also set to True. If the worksheet is not protected, the locked attribute is ignored.

    Therefore, your question isn't best framed as how to make cells read-only. Rather, the question is how to make cells editable after protecting the worksheet.

    ...Here you are:

    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)
    
    # ...
    

    The cell styles (easyxf class) are also useful for declaring background color, font weight, etc.

    Cheers.

    0 讨论(0)
提交回复
热议问题