【发布时间】:2019-08-20 11:42:14
【问题描述】:
我正在尝试使用 Excel 和 Python 3.7.1 制作一个自动化程序。
- 从 Excel 工作表开始,用户应该单击一个按钮
被分配了一个宏(实际上它是一个 ActiveX 控件命令 按钮)。 - 此宏运行 Python 并关闭 Excel 窗口。
- Python 脚本从另一个 .xlsx 文件中读取数据,进行回归 并将结果存储到 pandas DataFrame 中。
我现在要做的是将此 DataFrame 写入运行 Python 的 .xlsm 文件中的第二张表(已创建,但为空)。
我尝试了不同的方法,在互联网上寻找了很多帮助,但似乎没有任何效果。我还阅读了有关“vbaProject.bin”的信息,但我无法从在命令提示符下调用它的文件中提取内容。
要么数据按预期显示,但按钮不再“可点击”,要么数据根本不显示。 有时该文件甚至不可用,因为它的类型已被 python 更改。
我同时使用了 openpyxl 和 xlsxwriter,但都是徒劳的。这是其中一段代码:
wb = load_workbook('PythonLauncher.xlsm', keep_vba=True)
writer = pd.ExcelWriter('PythonLauncher.xlsm', engine=openpyxl)
writer.book = wb
DtFrm.to_excel(writer, writer.book.sheetnames[1], columns=None, index=False)
writer.save()
writer.close()
最佳结果是在 .xlsm 文件的第二张表中获取 DataFrame 而不会丢失点击功能。
【问题讨论】:
-
看看
xlwings包。我认为这对你尝试做的事情会更好
标签: python python-3.x excel-2010 xlsm