Pergunta

Estou criando um script Python, onde ele faz um monte de tarefas e uma dessas tarefas é lançar e abrir uma instância do Excel. Qual é a maneira ideal de realizar isso no meu script?

Foi útil?

Solução

Enquanto as respostas Popen são razoáveis ??para o caso geral, eu recomendaria win32api para este caso específico, se você quer fazer algo útil com ele:

É algo como isto:

from win32com.client import Dispatch
xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Open('C:\\Documents and Settings\\GradeBook.xls')
xl.Visible = True    # optional: if you want to see the spreadsheet

uma mailing list pós mas há uma abundância de exemplos ao redor.

Outras dicas

ou

os.system("start excel.exe <path/to/file>")

(presumindo que é no caminho, e você está no windows)

e também no Windows, apenas obras start <filename>, também - se é uma extensão associada já (como xls seria)

Gosto popen2 para a capacidade de monitorar o processo.

excelProcess = popen2.Popen4("start excel %s" % (excelFile))
status = excelProcess.wait()

http://www.python.org/doc/ 2.5.2 / lib / module-popen2.html

Editar : estar ciente de que chamando wait () irá bloquear até que o processo retorna. Dependendo do seu roteiro, isso pode não ser o comportamento desejado.

O subprocess módulo pretende substituir vários outros, módulos e funções mais antigos, tais como:

  • os.system
  • os.spawn *
  • os.popen *
  • popen2. *
  • comandos. *

.

import subprocess

process_one = subprocess.Popen(['gqview', '/home/toto/my_images'])

print process_one.pid

Como os outros, gostaria de sugerir os.system. No caso de alguém está à procura de uma solução compatível com Mac, aqui está um exemplo:

import os
os.system("open /Applications/Safari.app")

os.system ( "file.xls aberto")

Gosto os.startfile("path to file") como ele abre o arquivo como se você tivesse clicado duas vezes para aberto.

Descobri que com os.system("start excel filename") abriu-lo como um arquivo aberto a partir da web e você tinha que permitir a edição.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top