Добавить комментарий в ячейку Excel с Python 2.7 - PullRequest
0 голосов
/ 19 октября 2018

Я использую Python 2.7 и пытаюсь сделать то, что здесь (добавление комментариев на лист Excel в файл с Python), и это не работает ...

Вот мойcode:

import os, sys, shutil, time, openpyxl
from openpyxl import Workbook
from openpyxl.comments import Comment
...
path = 'K:/....../data.xlsx'
wb = Workbook()
ws = wb.active
...
comment = ws["A1"].comment
comment = Comment('This is the comment text', 'Comment Author')
...
wb.save(path)

Я также пытался:

comment = Comment('This is the comment text', 'Comment Author')
ws["A1"].comment = comment

но создает ли это мой xlsx-файл без комментариев к ячейке "A1", говорит ли это мне "Ошибка типа: ожидаетсяtype 'unicode' "и" Повышение TypeError ('Ожидаемый' + Str (Ожидаемый_тип)) ".

Не могли бы вы помочь мне исправить это?Спасибо

Примечание: я также пытался это , но там написано "нет атрибута AddComment" ...

1 Ответ

0 голосов
/ 19 октября 2018

Судя по сообщению об ошибке, 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 и последующее присвоение ей второго значения довольно бессмысленно;это не приведет к тому, что эти два значения будут связаны каким-либо интересным способом.Второй способ гораздо чаще вносит изменения в ваш рабочий лист.

...