Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to save XLSM file with Macro, using openpyxl

Tags:

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?

like image 847
AnujAroshA Avatar asked Jul 16 '13 11:07

AnujAroshA


People also ask

Can openpyxl work with XLSM?

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.

How do I save a .XLSM file?

In the Save As box, in the Save as type list box, choose Excel Macro-Enabled Workbook (*. xlsm). Click Save.


1 Answers

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

like image 155
eule Avatar answered Oct 06 '22 05:10

eule