如何从我的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文件。有什么想法吗?
答案 0 :(得分:2)
我想我已经找到了替代方案 首先,我使用VBA代码创建了一个xlsm文件,以格式化文件夹中每个工作簿中的每个工作表。然后在我的python脚本中,我将首先创建我想要创建的所有excel文件而不进行任何格式化,然后触发python以调用此xlsm文件中的宏来运行所有工作簿和每个工作表以格式化每个文件以我想要的方式,使用Excel的格式而不是python的excel格式。