我可以在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
发布于 2020-03-15 21:22:00
OP中的代码和建议的答案都适用于我。以下是我是如何在xlwings版本0.11.5 ( windows如果这一点重要的话,Excel 2013,2016,2019)中这样做的:
向单元格添加注释(请注意,如果已经存在注释,则必须清除注释!):
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)
阅读评论的价值:
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)
xlsx_comment = sheet.range(coordinate).api.comment
if xlsx_comment is not None:
print(xlsx_comment.text())
else:
print("No comment in this cell.")
我总是要在谷歌上搜索如何做到这一点,我遇到了这条线索,所以我觉得应该在某个地方记录这件事。狩猎愉快!
发布于 2017-08-28 11:14:50
问题:如何阅读现有评论的文本? 我的问题是阅读评论而不是写
不要打扰自己在链接标题如何使用python编写excel注释?,答案也显示了阅读。使用的示例令人困惑,因为它将传递的注释显示为返回的字符串:
>>> sheet.Range("A1").Comment.Text("Hello World")
u'Hello World'
Comment.Text法 returnValue =instance.Text(文本、开始、覆盖) 参数
Text
类型: System.Object 可选的对象。要添加的文本。Start
类型: System.Object 可选的对象。要放置添加文本的字符号。如果省略此参数,则删除注释中的任何现有文本。Overwrite
类型: System.Object 可选的对象。若要覆盖现有文本,则为True。默认值为False (插入文本)。 返回值 类型:System.String
作为all Parameter 可选的,Text()
返回注释文本。
>>> sheet.Range("A1").Comment.Text()
u'Hello World'
https://stackoverflow.com/questions/45754774
复制相似问题