我今天解决了这个问题,想在这里留下来让未来的人们使用。弄清楚如何做这件事是非常令人沮丧的。如果您正在使用Pandas库,则这也是相关的。请确保还安装了xlsxwriter。
1.点击Windows开始按钮,输入“cmd”并单击它以运行命令提示符。
2.一旦打开,您需要找到vba_extract.py文件所在的位置。对于我来说,它在这里:
C:\Users\yourusername\AppData\Local\Programs\Python\Python36-32\Scripts\vba_extract.py
3. 现在,您需要获取您想要提取的 .xlsm 文件的路径。如果您没有制作过 .xlsm 文件,请制作一个。以下是一个示例:
C:\Users\yourusername\Desktop\excelfilename.xlsm
4.现在回到命令提示符。这就是您需要输入的内容。您将使用步骤2和3中的两个项目进行合并,并按Enter键。如下:
C:\Users\yourusername\AppData\Local\Programs\Python\Python36-32\Scripts\vba_extract.py C:\Users\yourusername\Desktop\excelfilename.xlsm
如果成功了,它会告诉你这个:
Extracted: vbaProject.bin
5. 对于这一点我不太确定。我认为您的.xlsm文件所在的位置也是.bin文件的存放位置。在此示例中,它出现在我的桌面上。它将包含您在原始的.xlsm文件中创建或使用的所有宏。
C:\Users\yourusername\Desktop/vbaProject.bin
以下是完整代码中使用它的示例:
import pandas
import xlsxwriter
df_new = pd.read_csv('C:\\Users\\yourusername\\Desktop\\CSV1.csv')
writer = pd.ExcelWriter('C:\\Users\\yourusername\\Desktop\\CSV1.xlsx')
df_new.to_excel(writer, index = False, sheet_name = 'File Name', header = False)
pandaswb = writer.book
pandaswb.filename = 'C:\\Users\\yourusername\\Desktop\\newmacroexcelfile.xlsm')
pandaswb.add_vba_project(r'C:\Users\yourusername\Desktop/vbaProject.bin')
writer.save()