Судя по сообщению об ошибке, Comment
ожидает, что его аргументы будут Unicode, но вы даете ему 8-битные строки.Попробуйте вместо этого дать ему строки Unicode.
comment = Comment(u'This is the comment text', u'Comment Author')
Если вы думаете "но зачем мне префикс моих литералов с u
, если они не делают этого в примерах в документация ? ", то, скорее всего, эти примеры используют Python 3, где нефиксированные строковые литералы интерпретируются как Unicode.
Что касается вопроса" что из этого является правильным? ":
comment = ws["A1"].comment
comment = Comment(u'This is the comment text', u'Comment Author')
или
comment = Comment(u'This is the comment text', u'Comment Author')
ws["A1"].comment = comment
Второй имеет больше смысла для меня.Присвоение значения переменной comment
и последующее присвоение ей второго значения довольно бессмысленно;это не приведет к тому, что эти два значения будут связаны каким-либо интересным способом.Второй способ гораздо чаще вносит изменения в ваш рабочий лист.