добавить макрос для Excel, используя Python XLSwriter с данными в оригинальном Excel - PullRequest
0 голосов
/ 02 мая 2018

Я использую следующий код для добавления макроса в Excel. Я замечаю, что данные / другие рабочие таблицы из оригинального Excel полностью отброшены, но отображается макрос.

Это код, который я использую:

import xlsxwriter
workbooks = xlsxwriter.Workbook('C:\\Users\\user\Desktop\\test.xlsm')
workbooks.add_vba_project('C:\\Users\\user\\Desktop\\vbaProject.bin')
workbooks.close()

Я использовал ссылку http://xlsxwriter.readthedocs.io/example_macros.html, и, похоже, с другой страницы https://redoakstrategic.com/pythonexcelmacro/

Я задавался вопросом, есть ли другая библиотека, которую я должен использовать для этого?

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 15 июня 2018

Одним из способов решения этой проблемы является создание нужного макроса в другом Excel, чтобы мы могли выполнить его для воздействия на другой Excel. Затем, используя win32.com, он запускает VBA.

enter code here
#import win32com.client
#xl=win32com.client.Dispatch("Excel.Application")
#xl.Workbooks.Open(Filename="C:\\macro.xlsm",ReadOnly=1)
#xl.Application.Run("macro")
#xl = 0
0 голосов
/ 04 мая 2018

К сожалению, xlsxwriter не может загрузить информацию из уже существующих книг Excel; он используется только для создания новых. Вы перезаписываете старую рабочую книгу пустой, в которой есть ваши макросы.

Если вам нужно загрузить информацию, посмотрите openpyxl . Может использоваться для создания файлов .xlsm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...