我可以在Excel工作表中设置和删除注释,但无法获取(读取)现有注释的内容。 xlwings没有方法,所以你需要下拉到com对象。
import xlwings as xw
wb = xw.Workbook.active()
xw.Range('A1').api.AddComment('Some Text')
xw.Range('A1').api.DeleteComment()
xw.Range('A1').api.AddComment('More Text')
# Sadness on my best effort so far
comment_text = xw.Range('A1').api.Comment.Shape.TextFrame.Characters.Text
答案 0 :(得分:1)
OP中的代码或建议的答案均对我有效。这是我在xlwings版本0.11.5中执行的操作(如果重要,请在Windows上使用Excel 2013、2016、2019):
向单元格添加注释(请注意,如果已有注释,则必须清除注释!):
count
读取评论的值:
import xlwings as xw
path_to_excel_file = r'c:\temp\test.xlsx'
wb = xw.Book(path_to_excel_file)
sheet = wb.sheet['Sheet1']
coordinate = (1,1)
comment = "test comment"
sheet.range(coordinate).api.ClearComments()
sheet.range(coordinate).api.AddComment(comment)
我总是必须用Google搜索该怎么做,我碰到了这个线程,所以我认为这应该记录在某个地方。狩猎愉快!
答案 1 :(得分:0)
问题:...您如何阅读现有评论的文字? 我的问题是阅读评论而不是写它
请勿在链接的标题How to write excel comments using python? 上打扰自己,答案还会显示阅读。使用的示例令人困惑,因为它将传递的 Comment 显示为返回的String:
>>> sheet.Range("A1").Comment.Text("Hello World")
u'Hello World'
returnValue = instance.Text(Text, Start, Overwrite)
参数
Text
类型:System.Object 可选对象。要添加的文字。
Start
类型:System.Object 可选对象。添加文本的字符编号。如果省略此参数,则删除注释中的任何现有文本Overwrite
类型:System.Object 可选对象。如果为True,则覆盖现有文本。默认值为False(插入文本) 返回值
输入:System.String
如所有参数可选,Text()
会返回评论文字。
>>> sheet.Range("A1").Comment.Text()
u'Hello World'