Python xlwt - делает колонку доступной только для чтения (защита ячейки) - PullRequest
5 голосов
/ 16 декабря 2011

Есть ли способ сделать конкретную ячейку доступной только для чтения / записи в python xlwt?

Я знаю, что есть флаг cell_overwrite_ok, который не позволяет перезаписывать содержимое ячеек (всех ячеек), но можетэто должно быть сделано для каждой ячейки.

Спасибо, Солнце

1 Ответ

9 голосов
/ 10 ноября 2012

Ячейки Excel имеют атрибут locked , который включен по умолчанию.Однако этот атрибут вызывается только в том случае, если для атрибута protection листа также установлено значение True.Если рабочая таблица не защищена, атрибут locked игнорируется.

Поэтому ваш вопрос не лучше всего обозначить как , как сделать ячейки доступными только для чтения .Скорее вопрос как сделать ячейки редактируемыми после защиты листа .

... Вот вы:

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)

# ...

Стили ячеек (easyxfclass) также полезны для объявления цвета фона, веса шрифта и т. д.

Cheers.

...