如何使用Python将.xlsm(启用宏的Excel文件)转换为.xlsx?

5

我尝试将.xlsm文件中的数据导入为数据框。当我使用以下命令导入.xlsm文件时,结果是一个空的数据框:

exp = pd.read_excel(File_Path+'file_name'.xlsx',sheetname='Data',header=None)

我手动将 .xlsm 文件保存为 .xlsx 文件,并将其导入为数据帧。

请问有人能告诉我如何使用 Python 将 .xlsm 文件另存为 .xlsx 文件吗?


你需要发布更多的代码,或者解释你正在使用哪些库。 - Simon O'Doherty
1个回答

8
我建议您尝试使用win32com类型的方法。如果您在Windows上,可以使用Python自动化Excel本身来执行从.xlxm文件到.xlsx格式的转换。然后,可以使用通常的Pandas pd.read_excel()函数正确读取文件。
可以按照以下步骤进行操作:
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)

我建议您将完整路径添加到文件名中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接