尝试使用 python 代码打开 excel
Trying to open an excel using a python code
您好,我正在尝试使用 windows 上的 python 代码打开 excel(python 版本为 3.6.10)
我使用了 link 中的代码
Running an Excel macro via Python?
import win32com.client as wincl
excel_macro = wincl.DispatchEx("Excel.application")
excel_path = os.path.expanduser("Valuation.xlsm")
workbook = excel_macro.Workbooks.Open(Filename = excel_path, ReadOnly =1)
但是 excel 根本打不开,我也没有收到任何错误!
如果我 运行 运行 vba 宏的其余代码它确实可以正常工作(但文件仍然无法打开)
excel_macro.Application.Run("Macro1")
excel_macro.Application.Quit()
del excel_macro
问题是,如何使用 python 打开 excel 文件?
进口os
os.system("start EXCEL.EXE dummyfile.xlsx")
打开 excel 文件保存结构的真正简单方法是使用 pandas
import pandas as pd
df = pd.read_excel(excel_path)
只需使 Excel 应用程序可见即可。如果不将此 Application.Visible 属性 设置为 True
,应用程序将在后台运行并且确保不要调用 Quit
。当然,对于任何 API 集成,一定要包含 try/except
:
import win32com.client as wincl
excel_path = os.path.expanduser("Valuation.xlsm")
try:
excel_app = wincl.DispatchEx("Excel.application")
workbook = excel_app.Workbooks.Open(Filename = excel_path, ReadOnly =1)
# RUN PROCESSING
excel_app.Run("Macro1")
# LAUNCH EXCEL VISIBLY TO SCREEN
excel_app.Visible = True
except Exception as e:
print(e)
finally:
workbook = None; excel_app = None
del workbook; del excel_app
您好,我正在尝试使用 windows 上的 python 代码打开 excel(python 版本为 3.6.10)
我使用了 link 中的代码 Running an Excel macro via Python?
import win32com.client as wincl
excel_macro = wincl.DispatchEx("Excel.application")
excel_path = os.path.expanduser("Valuation.xlsm")
workbook = excel_macro.Workbooks.Open(Filename = excel_path, ReadOnly =1)
但是 excel 根本打不开,我也没有收到任何错误!
如果我 运行 运行 vba 宏的其余代码它确实可以正常工作(但文件仍然无法打开)
excel_macro.Application.Run("Macro1")
excel_macro.Application.Quit()
del excel_macro
问题是,如何使用 python 打开 excel 文件?
进口os os.system("start EXCEL.EXE dummyfile.xlsx")
打开 excel 文件保存结构的真正简单方法是使用 pandas
import pandas as pd
df = pd.read_excel(excel_path)
只需使 Excel 应用程序可见即可。如果不将此 Application.Visible 属性 设置为 True
,应用程序将在后台运行并且确保不要调用 Quit
。当然,对于任何 API 集成,一定要包含 try/except
:
import win32com.client as wincl
excel_path = os.path.expanduser("Valuation.xlsm")
try:
excel_app = wincl.DispatchEx("Excel.application")
workbook = excel_app.Workbooks.Open(Filename = excel_path, ReadOnly =1)
# RUN PROCESSING
excel_app.Run("Macro1")
# LAUNCH EXCEL VISIBLY TO SCREEN
excel_app.Visible = True
except Exception as e:
print(e)
finally:
workbook = None; excel_app = None
del workbook; del excel_app