Aller au contenu

Écrire dans en classeur Excel


DenisHen

Messages recommandés

Bonjour à la communauté.
Aujourd'hui, je fais plusieurs taches consécutives dans un classeur Excel.
Je lis le contenu d'une feuille, puis écris dans cette même feuille les attributs de centaines de blocs.
J'ai réussi à tout faire, sauf l'écriture dans le feuille.
J'aimerais éviter des lisp externes qui vont ouvrir et fermer plusieurs fois le classeur, ce qui serait plus long je pense.
J'ai regardé les lisp de @(gile) (WriteExcel et ReadExcel) pour m'en inspirer (et où j'ai piqué "Number2Alpha"), mais comme d'habitude, ils sont trop bien fait pour moi.
Donc, voici comment je lis la feuille :

;;; **************************************************
;;; Lecture des données du fichier Excel              
  (setq fichier (findfile FichXls))
  (setq xls (vlax-get-or-create-object "Excel.Application"))
  (setq classeur (vlax-invoke (vlax-get xls 'Workbooks) 'open FichXls))
  (setq feuille (vlax-get-property (vlax-get classeur 'Sheets) 'Item "AutoCAD"))

Puis :

  (while (/= (setq ValCellule (vlax-get (vlax-get-property feuille 'Range (strcat (Number2Alpha Col) "1")) 'Value)) nil)
    ........
    (setq Col (+ 5 Col))
  ) ;_ Fin de while

Je cherche donc, si toutes fois cela existe, une méthode similaire pour écrire dans cette feuille, puis enregistrer le classeur.
J'avais fais quelques tentatives avec ce genre de syntaxe, mais je n'ai rien trouvé de probant sur le net :

(vlax-put (vlax-put-property feuille 'Range (strcat (Number2Alpha ColXls) (rtos LignXls 2 0))) 'Value2(rtos SurfHab 2 2))

J'ai aussi tenté d'utiliser "WriteExcel", mais je n'ai pas compris l'utilisation de la variable "dataList".

Mon but étant d'ouvrir un classeur, lire une feuille précise (nommée "AutoCAD"), organiser mes attributs selon l'organisation de la feuille, écrire les attributs dans la feuille, enregistrer le classeur et le fermer.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

LignXLS est un integer, mon compteur de ligne.
Je n'ai pas besoin du (rtos ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Ok, je viens de comprendre la différence entre itoa et rtos, que je n'avais pas vu avant...
Merci...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

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é