2016-05-09 4 views
0

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

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

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

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

+0

Вы пробовали этот пост? http://stackoverflow.com/questions/30308455/how-do-i-call-an-excel-macro-from-python-using-xlwings –

+0

Спасибо, я думаю, я пропустил это. Я нашел, что XlsxWriter-0.8.6 поддерживает запись комментариев, поэтому я могу идти по пути создания и заполнения электронной таблицы с помощью xlwings, а затем запускать через ячейки с XlsxWriter-0.8.6 для записи в комментариях ... Не лучшее решение но лучше, чем возиться с скриптом VBA. –

+0

@GradyNegronida: XlsxWriter нельзя использовать для обновления так, как вы описываете. Это чистый писатель; он может создавать только новые книги. Если вы используете его для написания книги с тем же именем, что и существующая книга, тогда старая книга будет уничтожена, и вы создадите новую книгу, в которой нет ничего, кроме комментариев (или того, что вы явно пишете с помощью XlsxWriter) , –

ответ

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') 
+0

Похоже, что комментарии по умолчанию отображаются как выделенные полужирным. Как выборочно «разворачивать» определенный текст комментария? Благодарю. –

0

Если вы на самом деле обновления таблицы и таким образом с помощью xlwings, то xlwings изменил свою its api.

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

Я второй, что xlsxwriter хорош для строительства с нуля.

+0

Как узнать параметры, доступные внутри свойства api? – Mojimi

0

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

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

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

ach = wb.macro('AddCommentHook') 
ach('Sheet1!A1', 'test 123') 
Смежные вопросы