使用Python xlwings模块创建单元格注释

时间:2016-05-09 18:42:37

标签: python excel vba xlwings

我正在使用xlwings从头开始创建电子表格,并使用文本文件中的数据填充它。

我试图想出一种使用xlwings为单元格创建注释的方法。从我所看到的一切都是不可能的。有谁知道这样做的方法?

如果没有,那么我已经创建了一个我可以使用的VBA脚本,但有没有办法可以将这个VBA脚本移植到我的python脚本中?我想这样做,所以我不必运行python脚本,然后单独运行VBA脚本。

提前谢谢你。

3 个答案:

答案 0 :(得分:0)

正如here所解释的那样,您可以始终回退到底层的pywin32对象,以解决未实现的功能。在评论的情况下,在Windows上看起来像这样:

import xlwings as xw
wb = xw.Workbook.active()
xw.Range('A1').xl_range.AddComment()
xw.Range('A1').xl_range.Comment.Text('Some Text')

答案 1 :(得分:0)

如果您实际更新电子表格并因此使用xlwings,则xlwings已更改其its api

import xlwings as xw
wb = xw.Workbook.active()
xw.Range('A1').api.AddComment('Some Text')

我认为xlsxwriter很适合从头开始构建。

答案 2 :(得分:0)

如果 macOS 10.12上的wb = xlwings.Book() Excel 2011 ,那么wb.range('A1').api.comment的{​​{1}}和get方法似乎不适用于 XLWings 0.11.4 。作为解决方法,您可以在工作簿中创建VBA宏,如下所示

set

(不要忘记使用开发人员工具栏的“添加宏”对话框以确保Excel工作簿了解VBA代码。)然后,您可以从Python添加Excel单元格注释,如下所示:

Sub AddCommentHook(address As String, message As String)
    Call Range(address).AddComment(message)
End Sub
相关问题