簡體   English   中英

如何使用Python將.xlsm(支持宏的excel文件)轉換為.xlsx?

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

我試圖將.xlsm文件中的數據導入為數據框。 當我使用下面的命令導入.xlsm文件時,它會給我一個空數據幀作為結果:

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

我手動將.xlsm文件保存為.xlsx文件並將其作為數據框導入。

任何人都可以告訴我如何使用Python將.xlsm文件保存為.xlsx?

我建議你嘗試使用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)

我建議你添加文件名的完整路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM