Dispatch('Excel.Application') on Vista from Task Scheduler

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Cupric

    Dispatch('Excel.Application') on Vista from Task Scheduler

    I have a python script that runs fine from the command line or from
    within IDLE, but doesn't work through the Vista Task Scheduler.

    The script downloads some csv files and then uses pywin32 to combine
    the csv files into a single document. When I run it through the task
    scheduler, it downloads the csv files, but then doesn't seem to launch
    excel. I can't figure out what is wrong or how to add enough logging
    to tell.

    I'm using Python 2.6 and pywin32-212.win32-py2.6 on Vista.

    Code snippet below.

    Any ideas? Does it have something to do with permissioning on Vista?
    I'm running the task as my regular user (that has administrative
    privileges).

    Thanks,
    Theo
    ---------------
    from win32com.client import Dispatch
    .....
    excel = Dispatch('Excel .Application')
    excel.visible =0
    print 'launched excel'
    workbook =excel.Workbook s.Add()
    Sheets = workbook.sheets
    defaultWorkshee ts = workbook.Worksh eets(1)
    excel.applicati on.displayalert s = 0

    for port in portList:
    print 'about to open' + basePath + port.filename
    port_book = excel.Workbooks .Open( basePath +
    port.filename)
    port_sheets = port_book.Sheet s

    datasheet = port_sheets(1)

    datasheet.Activ ate()
    datasheet.Cells .Select()

    excel.Selection .Copy()

    Sheets.Add().Na me = port.name
    newsheet=workbo ok.Worksheets(p ort.name)
    newsheet.Activa te()
    newsheet.Paste( )

    port_book.Close (SaveChanges=0)

  • Larry Bates

    #2
    Re: Dispatch('Excel .Application') on Vista from Task Scheduler

    Cupric wrote:
    I have a python script that runs fine from the command line or from
    within IDLE, but doesn't work through the Vista Task Scheduler.
    >
    The script downloads some csv files and then uses pywin32 to combine
    the csv files into a single document. When I run it through the task
    scheduler, it downloads the csv files, but then doesn't seem to launch
    excel. I can't figure out what is wrong or how to add enough logging
    to tell.
    >
    I'm using Python 2.6 and pywin32-212.win32-py2.6 on Vista.
    >
    Code snippet below.
    >
    Any ideas? Does it have something to do with permissioning on Vista?
    I'm running the task as my regular user (that has administrative
    privileges).
    >
    Thanks,
    Theo
    ---------------
    from win32com.client import Dispatch
    ....
    excel = Dispatch('Excel .Application')
    excel.visible =0
    print 'launched excel'
    workbook =excel.Workbook s.Add()
    Sheets = workbook.sheets
    defaultWorkshee ts = workbook.Worksh eets(1)
    excel.applicati on.displayalert s = 0
    >
    for port in portList:
    print 'about to open' + basePath + port.filename
    port_book = excel.Workbooks .Open( basePath +
    port.filename)
    port_sheets = port_book.Sheet s
    >
    datasheet = port_sheets(1)
    >
    datasheet.Activ ate()
    datasheet.Cells .Select()
    >
    excel.Selection .Copy()
    >
    Sheets.Add().Na me = port.name
    newsheet=workbo ok.Worksheets(p ort.name)
    newsheet.Activa te()
    newsheet.Paste( )
    >
    port_book.Close (SaveChanges=0)
    >
    Normally this has more to do with the context that the app runs in under Task
    Scheduler not having the same environment as the logged in user. Try telling
    the Task Scheduler to run the application using the same credentials as the
    foreground user to see if that makes a difference.

    -Larry

    Comment

    Working...