Aller au contenu

Hors sujet - Programmation MsOffice


Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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 DELANNOY

Développement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAO

WIIP - http://wiip.fr

Lien vers le commentaire
Partager sur d’autres sites

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

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é