使用python xlswriter将原始excel中的数据添加到Excel中

时间:2018-05-02 15:16:23

标签: python-2.7 excel-vba vba excel

我正在使用以下代码将宏添加到Excel。我注意到原始Excel中的数据/其他WorkSheets已完全丢失,但宏正在显示。

这是我正在使用的代码:

import xlsxwriter
workbooks = xlsxwriter.Workbook('C:\\Users\\user\Desktop\\test.xlsm')
workbooks.add_vba_project('C:\\Users\\user\\Desktop\\vbaProject.bin')
workbooks.close()

我使用了链接http://xlsxwriter.readthedocs.io/example_macros.html,它似乎与另一页https://redoakstrategic.com/pythonexcelmacro/

相同

我想知道我是否应该使用另一个库?

我尝试了以下链接Use Python to Inject Macros into Spreadsheets,似乎再次覆盖了原始文件中的数据。不确定这是否重复,或者我错过了一些相当明显的东西?

由于

2 个答案:

答案 0 :(得分:1)

不幸的是,xlsxwriter无法从现有的Excel工作簿加载信息;它仅用于制作新的。您正在使用包含宏的空白工作簿覆盖旧工作簿。

如果您需要加载信息,请查看openpyxl。它可以用于创建.xlsm文件。

答案 1 :(得分:0)

一种方法是在另一个Excel中创建所需的宏,以便我们可以执行它以影响其他Excel。然后使用win32.com运行VBA。

enter code here
#import win32com.client
#xl=win32com.client.Dispatch("Excel.Application")
#xl.Workbooks.Open(Filename="C:\\macro.xlsm",ReadOnly=1)
#xl.Application.Run("macro")
#xl = 0