2015-02-27 7 views
2

Как взять макрос из моего xslm-файла и применить его к моему файлу xlsx?Python Excel Запустить макрос в файл xlsx

import cx_Oracle 
import xlsxwriter 
import win32com.client 

SQL = "Select * FROM TABLE" 
cursor1 = con.cursor() 
cursor1.execute(SQL) 
workbook = xlsxwriter.Workbook('OUTPUT.xlsx') 
worksheet = workbook.add_worksheet('Summary - Attendee') 
worksheet.set_tab_color('red') 

for i, row in enumerate(cursor1): 
    for j, col in enumerate(row): 
     worksheet.write(i+1,j,col) 

excel = win32com.client.Dispatch('Excel.Application') 
excel.Visible = 1 
excel.Workbooks.Open(Filename="Path\Macro.xlsm") 
excel.Application.Run("Format") 
excel.Workbooks(1).Close(SaveChanges=1) 
excel.Application.Quit() 
excel = 0 

workbook.close() 

Macro.xlsm VBA code: 
Sub Format() 
    Sheet1.Select 
    Cells.Select 
    Cells.EntireColumn.Autofit 
End Sub 

Оба эти произведения, но как отдельные процессы и файлы. Я хочу вызвать макрос из xlsm и применить его в свой файл xlsx для форматирования моего xlsx-файла. Есть идеи?

ответ

2

Я думаю, что я выбрал альтернативу этому.
Сначала я создал файл xlsm с кодом VBA для форматирования каждого из листов в каждой из моих книг в папке с файлами. Затем в моем скрипте python я сначала создам все файлы excel, которые я хочу создать без какого-либо форматирования, а затем запустите python, чтобы вызвать макрос в этом файле xlsm для запуска всех книг и каждого из листов для их форматирования в том, что я хочу, и используя форматирование Excel вместо форматирования excel от python.

Смежные вопросы