Python Excel 运行 xlsx 文件的宏

Python Excel Run Macro to xlsx file

如何从我的 xslm 文件中提取宏并将其应用到我的 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 文件。有什么想法吗?

我想我已经想出了一个替代方案。
首先,我创建了一个带有 VBA 代码的 xlsm 文件,用于格式化文件夹中每个工作簿中的每个工作表。然后在我的 python 脚本中,我将首先创建我想要创建的所有 excel 文件,不带任何格式,然后触发 python 将此 xlsm 文件中的宏调用到 运行 遍历所有工作簿和每张工作表,以我想要的方式格式化每个工作簿,并使用 Excel 的格式而不是 python 的 excel 格式。