I have .xlsm file with a Macro function. I'm loading it using openpyxl and write some data to the file and finally want to save as a different .xlsm file.
To save the file as XLSM file I have used below code in my Python script.
wb.save('testsave.xlsm');
But I cannot open that file if I saved as above. But if I saved it as .xlsx then I can open the file without the Macro function that original file had.
I want to open a Excel sheet that has Macro function, edit the file and save it as new .xlsm file using openpyxl. How can I do that?
Openpyxl is a Python library for reading and writing Excel (with extension xlsx/xlsm/xltx/xltm) files. The openpyxl module allows Python program to read and modify Excel files.
In the Save As box, in the Save as type list box, choose Excel Macro-Enabled Workbook (*. xlsm). Click Save.
For me this worked, together with version openpyxl==2.3.0-b2
wb = load_workbook(filename='original.xlsm', read_only=False, keep_vba=True) .. wb.save('outfile.xlsm')
It is also mentioend in the documentation here: http://openpyxl.readthedocs.org/en/latest/usage.html?highlight=keep_vba#write-a-workbook-from-xltm-as-xlsm
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With