Olivier Eckmann Posté(e) le 17 mars 2016 Posté(e) le 17 mars 2016 Bonjour, Je suis complètement hors sujet DAO, ça concerne la lecture/écriture de fichier DOCX et XLSX, mais il y a des personnes très compétentes sur ce forum et je me permets de poster ici. Je dois réaliser une application (C#) qui part de plusieurs documents DOCX et doit en extraire des pages, des morceaux, des cellules de tableau pour créer de nouveaux fichiers DOCX et XLSX. Je me posais une question quant à la bonne approche. Je pensais utiliser l'interface COM via les références Interop des produits Office, mais je suis tombé sur cet article qui explique comment lire/écrire des documents OpenXML sans Word ou Excel installé sur le PC. Je me demandais qu'elle serait la meilleure approche. D'après ce que j'ai compris:- COM : l'avantage c'est que c'est très proche du vba sous Office, donc facile d'accéder aux objets paragraphes, cellule, titre, style... par contre ça nécessite que Office soit installé. D'ailleurs est-ce sensible aux versions 2007, 2010, 2013 et plates-formes x86, x64. En gros un seul EXE est-il capable de s'en sortir quelques soit la versions/plateforme d'Office qu'il va trouver sur le PC?- SDK pour OpenXML : pas besoin d'office, mais il faut éplucher toute la doc OpenXML pour gérer les objets, police, gras, italique, bordure, couleur de fond des cellules... Si quelqu'un a déjà utilisé l'une ou l'autre méthode, je suis preneur d'infos. Merci Olivier
Maxence DELANNOY Posté(e) le 17 mars 2016 Posté(e) le 17 mars 2016 Avec COM il y a souvent des soucis, notamment des conflits de version, des composants mal enregistrés dans la base de registre... etc. Attaquer directement le document DOCX/XLSX est souvent plus fiable et plus rapide. Pour le XLSX j'utilise SpreadsheetLight qui est très simple et marche bien (je ne l'ai pas poussé dans ces retranchements mais pour faire des feuilles de calcul ordinaire c'est OK) : http://spreadsheetlight.com/ Pour ce qui est de Word, je n'ai pas souvent besoin de créer ce genre de document, donc je n'ai pas de nom à te donner, mais tu devrais trouver ton bonheur sur Nuget : https://www.nuget.org/ En tout cas, n'attaque pas directement en OpenXML, c'est bien trop lourd. Et pour COM, la compatibilité est ascendante, c'est à dire que si ton client fonctionne avec une ancienne version d'office, il doit fonctionner avec les nouvelles. Donc il faut développer/tester de préférence avec une version ancienne. Maxence DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr
(gile) Posté(e) le 17 mars 2016 Posté(e) le 17 mars 2016 Salut, Juste un petit ajout concernant COM.Pour éviter les problèmes de compatibilité on peut utiliser la liaison tardive ou, plus simple, le type dynamic. En pratique, je développe/débogue en référençant les bibliothèques COM pour bénéficier de l'intellisense, puis je supprime ces références et remplace les types COM par dynamic pour publier. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Olivier Eckmann Posté(e) le 18 mars 2016 Auteur Posté(e) le 18 mars 2016 Merci à tous les deux pour les conseils. Pour Excel j'avais commencé à regarder ça : ReoGrid . je vais jeter un œil à SpreadSheetLight. Pour word, je vais voir du côté de TX Text Control sinon je reviendrais à l'interface COM. Bonne journée et merci encore. Olivier
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant