Использование модуля Python xlwings для создания комментариев к ячейкам

Я создаю электронную таблицу с нуля, используя xlwings, и заполняю ее данными из текстового файла.

Я пытаюсь найти способ создать комментарий для ячеек, используя xlwings. Из всего, что я видел, это невозможно. Кто-нибудь знает способ сделать это?

Если нет, то я уже создал скрипт VBA в прошлом, который я могу использовать, но есть ли способ, которым я могу перенести этот скрипт VBA в мой скрипт на python? Я хотел бы сделать это, поэтому мне не нужно запускать скрипт Python, а затем отдельно запускать скрипт VBA.

Заранее спасибо.

3 ответа

Если вы на самом деле обновляете электронную таблицу и используете xlwings, то xlwings изменил свой API.

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

Во-вторых, xlsxwriter хорош для создания с нуля.

Как объясняется здесь, вы всегда можете обратиться к базовым объектам 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')

Если wb = xlwings.Book() на MacOS 10.12 с Excel 2011, затем wb.range('A1').api.comment"s get а также set методы не работают с XLWings 0.11.4. В качестве обходного пути вы можете создать макрос VBA в своей книге следующим образом

Sub AddCommentHook(address As String, message As String)
    Call Range(address).AddComment(message)
End Sub

(Не забудьте использовать диалоговое окно "Добавить макрос" панели инструментов разработчика, чтобы убедиться, что книга Excel знает о коде VBA.) Затем можно добавить комментарий к ячейке Excel из Python следующим образом:

ach = wb.macro('AddCommentHook')
ach('Sheet1!A1', 'test 123')
Другие вопросы по тегам