2009-10-26 7 views
1

J'ai des problèmes pour ouvrir un fichier Excel existant avec Tcl Tk. Je suis capable d'ouvrir un fichier MS Word existant sans problèmes. Le code que j'utilise est la suivante, aussi mon application de test a "package require TCOM" inclus:Ouverture de fichiers Excel et PDf avec Tcl Tk

proc OpenFile {} { 
#Path to file 
set app [::tcom::ref getobject "C:\\Users\\Me\\Desktop\\Test.doc"] 
#Change path to application 
set this [$app Application] 
#Open application 
$this Visible 1 
} 

Ce code est exécuté par un bouton. Fondamentalement, Test.doc est ouvert après que le bouton est pressé.

J'ai essayé de changer le fichier en un fichier Excel existant, et lorsque j'appuie sur le bouton, le fichier s'ouvre pendant une fraction de seconde, puis se ferme. Cela arrive également avec les fichiers MS Access.

Est-ce que quelqu'un sait comment ouvrir un fichier Excel existant avec Tcl Tk, et le faire rester ouvert? En outre, pour les fichiers PDF et les fichiers texte, je comprends que je ne peux pas utiliser Tcom pour ouvrir ces fichiers. Est-ce que quelqu'un sait comment ouvrir des fichiers PDF, du texte et d'autres fichiers non-MS avec Tcl Tk?

J'apprécie vraiment votre aide!

Merci,

DFM

+0

Après plus de recherche, je trouve que le code suivant ouvre des fichiers texte: exec bloc-notes « Test.txt » et moi avons essayé cela avec acrobate, pour ouvrir un pdf, mais cela n'a pas fonctionné. – user175328

Répondre

2

En supposant que vous êtes sur Windows et vous voulez juste d'ouvrir un fichier (.xls, .pdf, ...) avec son application habituelle (ie. De ne pas modifier le fichier de votre script), vous pouvez utiliser « commencer » comme ceci:

set TestDoc "My Test.xls" 
eval exec [auto_execok start \"\" [list $TestDoc] 
+0

Comme écrit à l'origine, à cause de l'évaluation, votre réponse échouera si le nom du fichier contient des espaces. Vous voudrez peut-être revoir votre réponse pour en tenir compte. –

+0

Merci Colin - J'ai essayé de vous voter, mais je n'ai pas assez de points de rep. Après avoir éliminé le chemin de Test.xls, j'ai pu utiliser votre suggestion parfaitement. – user175328

+0

Bonjour Bryan - Merci pour la suggestion. J'ai été capable de trouver une ressource (http://wiki.tcl.tk/765) qui explique la syntaxe des fichiers qui ont des espaces dans leurs noms: set TestDoc "My Test.xls" eval exec [auto_execok start \ "\" [list $ TestDoc] Merci Colin et Bryan pour votre aide! DFM – user175328

Questions connexes