我正在使用xlwings从头开始创建电子表格,并使用文本文件中的数据填充它。
我试图想出一种使用xlwings为单元格创建注释的方法。从我所看到的一切都是不可能的。有谁知道这样做的方法?
如果没有,那么我已经创建了一个我可以使用的VBA脚本,但有没有办法可以将这个VBA脚本移植到我的python脚本中?我想这样做,所以我不必运行python脚本,然后单独运行VBA脚本。
提前谢谢你。
答案 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