需求: 在python脚本层,直接打开excel,跳转特定分页,方便策划编辑
尝试了几种不同的方法,最终选择了方法4。4种方法都可以实现打开外部文件,3、4可以实现跳转特定分页。3和4的区别是,3通过写文件方法,修改了激活的分页,再进行打开操作。4是相当于通过win32的接口执行了vba操作。
方法1:
使用os.startfile()方法
# 可以用来打开外部程序或文件,系统会自动关联相应的程序来打开
import os
if hasattr(os, 'startfile'):
os.startfile(file_path)
方法2:
使用os.system()方法
import os
if os.system(file_path) == 0:
print("成功")
else:
print("文件 {}不存在".format(file_path))
方法3:
subprocess.call() 父进程等待子进程完成,返回退出信息(returncode,相当于Linux exit code)。
shell默认为False,在Linux下,shell=False时, call调用os.execvp()执行args指定的程序;shell=True时,如果args是字符串,call直接调用系统的Shell来执行args指定的程序,如果args是一个序列,则args的第一项是定义程序命令字符串,其它项是调用系统Shell时的附加参数。
import subprocess
subprocess.call(file_path, shell=True) # 可以
方法4:
使用win32的接口,dispatch事件打开excel特定分页。
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(file_path)
wb.Worksheets("Sheet1").Activate()
excel.Visible = True