|
| Intégration Word et Excel |
| Débuté par Arnaud, 18 mai 2026 16:52 - 6 réponses |
| |
| | | |
|
| |
| Posté le 18 mai 2026 - 16:52 |
Bonjour,
Pour une application, je voudrai ouvrir directement les documents Word et Excel. Le souci est que mon client a beaucoup de fichier encore au format DOC et XLS. Les composants Windev n'autorise que DOCX et XLSX. Avez-vous déjà rencontré ce souci et comment éventuellement les convertir ?
Merci d'avance |
| |
| |
| | | |
|
| | |
| |
| Posté le 19 mai 2026 - 20:16 |
Bonjour, J'ai été confronté à ce problème il y a quelques années (en ce qui concerne Word.) Je suis passé par un objet automation. Le principe est d'ouvrir le document .doc est de le sauvegarder en .docx A la volée
Procedure DocVersDocx(saCheminDoc est chaîne)
oDocWord est un objet automation dynamique
oDocWord = allouer un objet automation "word.Application"
oDocWord>>Visible = Faux
oDocWord>>Documents>>Open(saCheminDoc)
saCheminDoc =ChaîneConstruit("%1x",saCheminDoc) Word>>ActiveDocument>>SaveAs(saCheminDoc,16)
oDocWord>>ActiveDocument>>Close oDocWord>>quit Pour Excel, le pricipe devrait être le même |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 439 messages |
|
| Posté le 20 mai 2026 - 17:51 |
Il y a je crois une coquile dans ton code
Procedure DocVersDocx(saCheminDoc est chaîne)
oDocWord est un objet automation dynamique
oDocWord = allouer un objet automation "word.Application"
oDocWord>>Visible = Faux
oDocWord>>Documents>>Open(saCheminDoc)
saCheminDoc =ChaîneConstruit("%1x",saCheminDoc) oDocWord>>ActiveDocument>>SaveAs(saCheminDoc,16)
oDocWord>>ActiveDocument>>Close oDocWord>>quit
-- Bertin CARRIERE SRL GDPR.Zen-Project.be support@zen-project.be www.zen-project.be www.linkedin.com/in/bertincarriere www.binaire.be Solution PEPPOL Belgique, Comptabilité Peppol LUCA +32 (0)71 35.78.92
Repreneur d'activités |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 439 messages |
|
| Posté le 20 mai 2026 - 17:52 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 403 messages |
|
| Posté le 20 mai 2026 - 19:09 |
Bertin - Zen-Project a écrit :
Il y a je crois une coquile dans ton code
Oui en effet, ODocWord à la place de Word Voici la version propre et commentée avec la ref pour les code de format Word (pour Excel, il faudra vérifier.)
Procedure DocVersDocx(saCheminDoc est chaîne)
autMonDoc est objet automation "Word.Application"
autMonDoc>>Visible = Faux
autMonDoc>>Documents>>Open(saCheminDoc) saCheminDoc= ChaîneConstruit("%1x",saCheminDoc)
autMonDoc>>ActiveDocument>>SaveAs2(saCheminDoc,16)
autMonDoc>>ActiveDocument>>Close autMonDoc>>quit
Bertin - Zen-Project a écrit :
Mais je me suis permis de le copier dans ma collection de procedure Outil.
C'est fait pour ça
-- Il y a peut être plus simple, mais, ça tourne Quand tout a échoué, utilise l'option RTFMMessage modifié, 20 mai 2026 - 19:12 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 403 messages |
|
| Posté le 21 mai 2026 - 16:03 |
Comme je l'expliquais, le principe est le même pour Excel. Il suffit d'utiliser un objet Workbooks à la place d'un objet Document
FONCTION XlsVersXlsx(saCheminClasseur est chaîne) : booléen
autMonClasseur est objet automation "Excel.Application" saMsgErreur est chaîne
saMsgErreur="Une %1 a eu lieu dans %2%3%1 n° %4%3%5"
autMonClasseur>>Visible = Faux
autMonClasseur>>Workbooks>>Open(saCheminClasseur) saCheminClasseur= ChaîneConstruit("%1x",saCheminClasseur)
autMonClasseur>>ActiveWorkbook>>SaveAs(saCheminClasseur,51)
autMonClasseur>>ActiveWorkbook>>Close autMonClasseur>>quit
RENVOYER Vrai
CAS ERREUR: SELON ErreurInfo(errCode) AUTRE CAS saMsgErreur=ChaîneConstruit(saMsgErreur,"Erreur",dbgInfo(dbgTraitement),CRLF,... ErreurInfo(errCode),ErreurInfo(errMessage)) FIN ErreurPropage(saMsgErreur) RENVOYER Faux CAS EXCEPTION: SELON ExceptionInfo(errCode) AUTRE CAS saMsgErreur=ChaîneConstruit(saMsgErreur,"Exception",dbgInfo(dbgTraitement),CRLF,... ExceptionInfo(errCode),ExceptionInfo(errMessage)) FIN ExceptionPropage(saMsgErreur) RENVOYER Faux
-- Il y a peut être plus simple, mais, ça tourne Quand tout a échoué, utilise l'option RTFMMessage modifié, 21 mai 2026 - 16:05 |
| |
| |
| | | |
|
| | |
| |
| Posté le 27 mai 2026 - 16:23 |
Voroltinquo a écrit :
Comme je l'expliquais, le principe est le même pour Excel. Il suffit d'utiliser un objet Workbooks à la place d'un objet Document FONCTION XlsVersXlsx(saCheminClasseur est chaîne) : booléen
autMonClasseur est objet automation "Excel.Application" saMsgErreur est chaîne
saMsgErreur="Une %1 a eu lieu dans %2%3%1 n° %4%3%5"
autMonClasseur>>Visible = Faux
autMonClasseur>>Workbooks>>Open(saCheminClasseur) saCheminClasseur= ChaîneConstruit("%1x",saCheminClasseur)
autMonClasseur>>ActiveWorkbook>>SaveAs(saCheminClasseur,51)
autMonClasseur>>ActiveWorkbook>>Close autMonClasseur>>quit
RENVOYER Vrai
CAS ERREUR: SELON ErreurInfo(errCode) AUTRE CAS saMsgErreur=ChaîneConstruit(saMsgErreur,"Erreur",dbgInfo(dbgTraitement),CRLF,... ErreurInfo(errCode),ErreurInfo(errMessage)) FIN ErreurPropage(saMsgErreur) RENVOYER Faux CAS EXCEPTION: SELON ExceptionInfo(errCode) AUTRE CAS saMsgErreur=ChaîneConstruit(saMsgErreur,"Exception",dbgInfo(dbgTraitement),CRLF,... ExceptionInfo(errCode),ExceptionInfo(errMessage)) FIN ExceptionPropage(saMsgErreur) RENVOYER Faux -- Il y a peut être plus simple, mais, ça tourne Quand tout a échoué, utilise l'option RTFM
Un grand merci à tous |
| |
| |
| | | |
|
| | | | |
| | |
|