Aller au contenu

Ecrire dans un doc Word


Messages recommandés

Posté(e)

Bonjour à tous,

 

Je dois faire pour me simplifier la saisie manuelle une routine lisp qui permet d'écrire des données Autocad dans un document Word. J'ai trouvé mon besoin avec des commandes comme

 

;; récupérer un nom de fichier 

(setq filename (getfiled "Créer un fichier Word" "" "doc" 1)) 
 
;; obtenir ou créer une intance de l'application 
(setq wapp (vlax-get-or-create-object "Word.Application")) 

;; obtenir les documents 
(setq wdocs (vlax-get-property wapp 'Documents)) 

;; créer un nouveau document 
(setq wdoc (vlax-invoke-method wdocs 'Add)) 

;; obtenir la sélection (ou le curseur) 
(setq wsel (vlax-get-property wapp 'Selection)) 

;; Entrer du texte 
(vlax-invoke-method wsel 'TypeText "Ceci est un test") 

;; sauver le fichier 
(vlax-invoke-method wdoc 'SaveAs filename) 

;; fermer le document 
(vlax-invoke-method wdoc 'Close) 

;; quitter l'application 
(vlax-invoke-method wapp 'Quit) 

;; supprimer l'instance et nettoyer la mémoire (indispensable) 
(vlax-release-object wapp) 
(gc)

 

Il ne manque seulement que des lignes de codes pour paramétrer le style de texte et l'écriture en gras en italique, et la hauteur de texte

 

Je sais qu'avec les composants VBA COM, ca peut se faire mais je cherche depuis 3 jours en vain

avec par exemple pour mettre en gras

 

 

(vlax-get-property wsel 'Font.Bold 1)
(vlax-put-property wsel 'Font.Bold True)

 

Si quelqu'un pourrait m'aider, Merci par avance.

 

John

Posté(e)

Salut

 

;; récupérer un nom de fichier 

(setq filename (getfiled "Créer un fichier Word" "" "doc" 1)) 
 
;; obtenir ou créer une intance de l'application 
(setq wapp (vlax-get-or-create-object "Word.Application"))

;; Rendre word visible
(vla-put-visible wapp :vlax-true)

;; obtenir les documents 
(setq wdocs (vlax-get-property wapp 'Documents)) 

;; créer un nouveau document 
(setq wdoc (vlax-invoke-method wdocs 'Add)) 

;; obtenir la sélection (ou le curseur) 
(setq wsel (vlax-get-property wapp 'Selection))

;; Récuper le style courant
(setq wtxt (vlax-get wsel 'Font))

;; Changer la hauteur à 14
(vlax-put wtxt 'Size 14)

;; Faire du texte en gras
(vlax-put wtxt 'Bold :vlax-true)

;; Faire du texte en italique
(vlax-put wtxt 'Italic :vlax-true)

;; Changer le style de texte en Arial
(vlax-put wtxt 'Name "Arial")

;; Entrer du texte 
(vlax-invoke-method wsel 'TypeText "Ceci est un test")

;; sauver le fichier 
(vlax-invoke-method wdoc 'SaveAs filename) 

;; fermer le document 
(vlax-invoke-method wdoc 'Close) 

;; quitter l'application 
(vlax-invoke-method wapp 'Quit) 

;; supprimer l'instance et nettoyer la mémoire (indispensable) 
(vlax-release-object wapp) 
(gc)

 

@+

  • Upvote 1

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Si quelqu'un pourrait m'aider, Merci par avance.

 

Patrick_35 pour ce genre de problème. Comme par hasard B)

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

(gc)

Forces a garbage collection, which frees up unused memory

 

Extrait de l'aide. Libère la mémoire.

Si elle n'était pas partie de ton install. Elle n'existerait pas sans defun ! D'ailleurs elle est bien en bleu dans ton éditeur, n'est-ce pas ?

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

(gc)

 

 

Extrait de l'aide. Libère la mémoire.

Si elle n'était pas partie de ton install. Elle n'existerait pas sans defun ! D'ailleurs elle est bien en bleu dans ton éditeur, n'est-ce pas ?

 

Ok Merci sérieusement pour votre aide à tous

 

John

Posté(e)

Bonjour à tous,

 

Avant de cloturer ce post, dernière petite question

 

Comment fait-on pour centré du texte ou bien le placer à gauche ou à droite de la page Word ?

J'ai recherché dans tous les fonctions Font, Border et Style avec

 

(vlax-dump-object wsel)

 

ou encore

 

(vlax-dump-object wtxt)

 

mais je n'ai rien trouvé.

 

Merci par avance de votre aide

 

John

Posté(e)

Bonjour à tous,

 

Avant de cloturer ce post, dernière petite question

 

Comment fait-on pour centré du texte ou bien le placer à gauche ou à droite de la page Word ?

J'ai recherché dans tous les fonctions Font, Border et Style avec

 

(vlax-dump-object wsel)

 

ou encore

 

(vlax-dump-object wtxt)

 

mais je n'ai rien trouvé.

 

Merci par avance de votre aide

 

John

Salut

 

(setq ptxt (vlax-get wsel 'Paragraphs))
(vlax-put ptxt 'Alignment 1)

 

ps : pour t'aider, une recherche sur google avec comme mots clé createobject, Word.Application et centrer

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Désolé de ne pas avoir répondu plus tôt mais j'étais en déplacement

Merci Patrick pour tes réponses, j'ai pu m'en sortir.

Je pense que l'on peut cloturer ce post

 

Merci encore à vous tous

 

John

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité