Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Office System .NET Discussion :

Quelle serait la meilleure approche pour créer un document word par programmation?


Sujet :

Développement Office System .NET

  1. #1
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    juin 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juin 2003
    Messages : 260
    Points : 76
    Points
    76
    Par défaut Quelle serait la meilleure approche pour créer un document word par programmation?
    Bonjour,

    J'essaye de trouver la meilleure solution pour développer une application (windows) qui ira chercher différentes données dans une (des) bases de données, des fichiers excel,... et qui générera un document Word de plusieurs pages. Les données à afficher, peuvent être des tableaux de données, du texte simple, des images, ...

    J'ai pensé à utiliser Open XML mais il existe peut-être une meilleure solution.

    Je pensais également à créer d'abord la structure du fichier avec des "tags" à remplacer par mes données. Par exemple, #montrucaremplacer#. Ca me semble une approche plus aisée pour la mise en forme du document.

    Cela fait plusieurs jours que je cherche la meilleure approche mais en vain alors je fais appel aux experts

    Tuto, exemples sont évidemment les bienvenus.

    D'avance merci pour vos réponses.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 4 904
    Points : 10 177
    Points
    10 177
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Je ne sais pas si je suis un expert, mais je me suis promené entre VB.net, VBA et Open XML. Je ne sais pas s'il y a de meilleure solution; si ce n'est que la meilleure solution est probablement celle avec laquelle tu te sens la plus à l'aise.

    La plate-forme .net permet de piloter Word par OLE Automation, d'une manière similaire à ce que serait de piloter Word avec VBA Excel. Il faut quelques modifications dans la manière d'appréhender les objets, si on peut dire, mais dans les grandes lignes, c'est tout comme. Pour quelqu'un qui est moindrement familier avec VBA Word, c'est peut-être la méthode la plus facile, avec la courbe d'apprentissage la plus courte; sans être obligatoirement la plus efficace en termes des performance et d'économie des ressources. Et il faut avoir Word à portée de la main.

    Le SDK Open XML est en fait, l'encapsulation de certains éléments de System.IO.packaging du Framework. Dans le cas de Word, Excel et PowerPoint, tu peux utiliser l'un ou l'autre. Pour les autres applications Office, il faut oublier le SDK. C'est une approche très différente de "VBA-Word", ou même de VBA tout court. Ce n'est pas vraiment facile à apprendre, ni à maîtriser. Mais, tu peux y parvenir sans avoir Word.

    Il existe aussi des bibliothèques .net toutes faites qui ont besoin du SDK Open XML pour fonctionner mais qui "ressemblent" à des contrôles .net.

    Ils y en a quelques unes chez CodePLex, mais celle qui me semble être la plus aboutie, c'est Docx:

    http://docx.codeplex.com/

    Mais là, il faut t'assurer que la bibliothèque te fournit tout ce dont tu as besoin.

    (pour Excel, il y a, toujours chez CodePlex, EPPlus et ClosedXML

    Tu peux aussi jeter un œil sur :


    Les exemples Open XML de Microsoft


    La première partie d'une "pièce en trois actes" sur la construction d'un document Word avec Open XML en partant de zéro.

    Les liens vers la suite sont au bas de la page en question
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2009
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : avril 2009
    Messages : 1 031
    Points : 2 167
    Points
    2 167
    Par défaut
    Il y a deux grand axe concernant ce type de projet.

    Le premier c'est de passer par l'automation de Word, ce qui revient en gros à piloter word comme on le ferait avec une macro VBA mais avec un programme .Net. Il peut avoir un intérêt d'utiliser du .net plutôt que du vba pour profiter de la puissance du Framework pour les autres briques du programme et pour réutiliser des classes déjà existante.

    La deuxième c'est de passer par l'openXML SDK qui va travailler directement sur le fichier, qui n'est en réalité qu'un tas de dossier XML dans une archive zip. L'avantage de l'openXML c'est qu'il ne nécessite pas word pour travailler et qu'il est probablement plus rapide. Ce qui est très intéressant dans une optique de génération de document à la volée sur un serveur. L'inconvénient c'est qu'on travaille à un niveau beaucoup plus bas (un tas de balise XML en gros), même si certains outils (tels que ceux cité avant) offrant une couche d'abstraction commence a apparaître. Bref la technologie n'est pas super mature et demande un niveau de compétance/charge de travail beaucoup plus importante. Donc si on ne bénéficie pas du côté "serveur" et performance c'est à mon avis une mauvaise piste.

    Bien entendu, il faut aussi être sur qu'on nécessite un traitement précis sur un document word complexe (souvent pour un retraitement à la main du document pour la mise en page).

    Parce que si l'objectif c'est de générer un borderau de commande ou une facture, il est plus simple de passer par des solutions de reporting.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/09/2012, 10h19
  2. Réponses: 4
    Dernier message: 02/03/2011, 16h20
  3. Réponses: 1
    Dernier message: 21/02/2010, 09h42
  4. [XML] Quelle est la meilleur technique pour créer un fichier XML? (erreur de caract)
    Par Jonathan.b dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 15/01/2008, 09h19
  5. Quelle est la meilleure solution pour créer des Web Services?
    Par Flipmode dans le forum Services Web
    Réponses: 1
    Dernier message: 26/04/2007, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo