How to convert .xlsm (macro enabled excel file) to .xlsx using Python?

放肆的年华 提交于 2019-11-30 22:14:39

I would suggest you try using a win32com type approach. If you are on Windows, you can use Python to automate Excel itself to carry out the conversion from an .xlxm file to .xlsx format. The file can then be read correctly using the usual Pandas pd.read_excel() function.

This can be done as follows:

import win32com.client as win32

excel = win32.gencache.EnsureDispatch('Excel.Application')

# Load the .XLSM file into Excel
wb = excel.Workbooks.Open(r'input.xlsm')

# Save it in .XLSX format to a different filename
excel.DisplayAlerts = False
wb.DoNotPromptForConvert = True
wb.CheckCompatibility = False
wb.SaveAs(r"output.xlsx", FileFormat=51, ConflictResolution=2)
excel.Application.Quit()

# Load the .XLSX file into Pandas
df = pd.read_excel('output.xlsx', sheetname='Data', header=None)

I suggest you add full paths to the filenames.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!