Python 2.7 读取Excel文件的Python脚本将停止在任务计划程序中执行

Python 2.7 读取Excel文件的Python脚本将停止在任务计划程序中执行,python-2.7,win32com,import-from-excel,Python 2.7,Win32com,Import From Excel,由Windows Server 2012 64位上运行的任务调度器执行的python 2.7脚本在打开现有XLS文件时不会引发异常。创建分派工作正常尝试/除非未显示: xlApp = win32com.client.DispatchEx('Excel.Application') 但就在那之后: try: log_message("Opening Excel Workbook object for the attachment using password '%s'" % email

由Windows Server 2012 64位上运行的任务调度器执行的python 2.7脚本在打开现有XLS文件时不会引发异常。创建分派工作正常尝试/除非未显示:

xlApp = win32com.client.DispatchEx('Excel.Application')  
但就在那之后:

try:
    log_message("Opening Excel Workbook object for the attachment using password '%s'" % email_found['PASSWORD'])
    workbook = xlApp.Workbooks.Open(attachment, False, False, None, email_found['PASSWORD'])
    log_message("Workbook opened, produced object with type '%s'" % type(workbook).__name__)
except Exception, e:
    log_message("Exception opening workbook")
    message = "Exception raised : %s" % str(e)
    log_message(message, 'ERROR')
    xlApp.Quit()
    return 22  
log_消息写入日志文件并可选择发送电子邮件。第一条消息出现,这就是日志文件的结尾。Excel在任务管理器中显示为正在运行,任务在任务计划程序中显示为正在运行

当同一用户在命令shell中运行同一脚本时,该脚本将成功完成。同样的脚本,在Win7机器上的任务调度程序中运行时,会成功完成

其他资料:

其帐户运行任务的用户是本地管理员。我试过两个这样的用户,两个用户的情况都是一样的。 盒子上只安装了一个Excel 2010实例。 完整路径位于“附件”中的文件肯定存在,并且可以通过Excel以交互方式打开。 存储在email_found['PASSWORD']中的字符串包含XLS文件的正确密码。 我发现一些帖子提到了拥有一个或另一个或两个目录的必要性: C:\Windows\SysWOW64\config\systemprofile\Desktop C:\Windows\System32\config\systemprofile\Desktop 它们都是我的礼物,它们都是空的。 我在Windows上运行此脚本,而不是在我们首选的Linux平台上使用xlrd,因为xlrd不支持受密码保护的XLS文件。XLS文件由客户每周每天发送给我们。
欢迎提出任何建议,并提前表示感谢。

我也遇到过类似的问题。但是,当我在TaskScheduler中配置任务时,我将配置从“无论用户是否登录都运行”更改为“用户登录时运行”。成功了!我的脚本转到OneDrive文件夹,并从所选excel读取和提取数据。

“附件”是XLS文件的完整路径;我将制作一个不受密码保护的版本。谢谢你的反馈。我已经对一个没有密码保护的XLS文件运行了一部分代码。同样的情况也会发生:执行在调用xlApp.Workbooks.OpenI时停止。我已经使用受密码保护和不受密码保护的文件对此进行了测试,这些文件存储在本地磁盘和使用UNC名称访问的服务器共享上。只要XLS文件在本地存储,脚本就可以工作。为此,我找到了一篇关于如何为演示添加一些代码的帖子?