[.net 3.0] openxml manager - chargement et edition/sauvegarde des documents openxml

Soyez le premier à donner votre avis sur cette source.

Vue 14 255 fois - Téléchargée 1 125 fois

Description

Bonsoir,
une source sur OpenXml

Bon la cela commence à etre pas mal (enfin c'est ce que je me dis à chaque fois que je fais un ajout :p)

ce projet est également disponible sur Codeplex,le site de projets .NET open source :
http://www.codeplex.com/cs3openxmlmanager
vous pourrez également y trouver le runtime

il y a eu un bon petit tutorial sur Developpez.com qui m'a motivé pour me mettre dessus, bien que d'ailleurs jusqu'à présent il ne m'ait assez peu servi dans la source

je mets le lien :)
Lire et modifier un document Word OpenXML en C#
http://badger.developpez.com/tutoriels/dotnet/lire-modifier-fichier-word-openxml/

la source permet donc d'ouvrir un document ou modèle office 2007 word,excel,powerpoint,etc.
OpenXml ce n'est pas ce qu'on croit, enfin personnellement j'ai assez peiné

le but de cette source n'est pas de recréer ce qui existe deja (si dans la forme cela ressemble à l'heure actuelle beaucoup à OpenXml package explorer), c'est un début, mon idée serait de permettre de générer directement du code sans avoir à aller trop dans la saisie

donc la source permet :
- de charger un fichier Office 2007 et afficher l'arborescence des dossiers et fichiers du "zip"
- d'ouvrir un fichier (packagepart) et de l'éditer,sauvegarder
> pour cela un editeur xml avec auto completion sur balises et attributs et coloration syntaxique
> une vue treeview
- un visualiseur d'images (contenu dans le "zip") est présent
- une fenêtre rechercher remplacer qui peut etre trés utile( on peut effectuer une recherche/remplacement dans le packagepart courant ou dans l'ensemble des packageparts du package)+ autocompletion + recherche ^basée sur regex ..
- insertion d'images directement dans le package
- possibilité de sauver les images d'un package
- editeur pour le fichier document.xml (word)
- création de package(document Word 2007) à partir de rien
- Image editor (avec effets) c'est le début
- Explorateur des schémas xml de OpenXml avec une fenetre rechercher dans l'ensemble des schémas trés pratique
- comparateur afin de comparer par exemple un code généré par Word et un code généré avec l'editeur afin de détecter des différences,mieux débugger et comprendre
- etc.

en fait j'essaie de m'equiper de tout ce qui pourrait etre utile et qui me permettra de petit à petit mieux maitriser le format qui n'est pas si simple que cela, ainsi plus je maitriserai le format et plus j'ajouterais des fonctionnalités et utilitaires "percutants" et efficaces
ce que je vois de plus interessant en OpenXml la possibilité de lier son document et afficher une source de données (ce sera mon objectif pas sur que j'y arrive tout de suite :p)

donc logiquement c'est un début, il devrait y avoir des ajouts, mon but serait de faciliter grandement le développement avec Open Xml

+

Conclusion :


un dernier mot pour dire que vous pourrez logiquement ouvrir la solution même si vous ne disposez pas du framework .NET 3.0 (j'ai ajouté la dll windowbase)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
amjadlr
Messages postés
1
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
7 juillet 2008

7 juil. 2008 à 21:10
Fusionner des docx dans un seul docx :

Bonjour,

En utilisant Open XML Format SDK 1.0 (C# ou VB.Net), Je veux construire un fichier .docx à partir de plusieurs autres fichiers .docx qui constituent chacun une partie du document final. Par exemple :
Entete.docx (qui contient l’Entête du document final - texte et images)
Pied-de-page.docx (qui contient le pied de page du document final - texte et images)
Paragraphe-1.docx (qui contient le paragraphe 1 du document final - texte et images)
Paragraphe-n.docx (qui contient le paragraphe n du document final - texte et images)
Annexe.docx (qui contient un autre document avec un entête et pied-de-page et une numérotation de page indépendante du document principale - texte et images)

Merci.
romagny13
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
3
26 juil. 2007 à 20:34
- oui c'est vrai en fait tant qu'un package est "ouvert" (en cours d'utilisation) on ne peut pas l'ouvrir avec Office ,moi j'ai le message que le fichier est utilisé ..
- "ouvrir le package tant qu'il est ouvert avec application" oui c'est aussi une chose a laquelle j'avais pensé mais justement la gestion du fait qu'il faut "liberer" le package a fait que j'avais laissé cette idée de coté

- "c'est de pouvoir choisir ce chemin aussi dans la boite de dialogue pour la création de package." a ok roo c'est du luxe ca lol

- "comparer 2 packages" héhé moi aussi c'est pour ca j'ai integré une tool nommée "comparator" qui permet de comparer deux sources (donc logiqument par exemple une bonne créée depuis office et l'autre ou il y aurait par exemple une petite erreur afin de la trouver et comprendre comment l'ensemble "s'orchestre")

-"intellisense dans l'édition du XML" oui c'est ce qu'il me semble le mieux pour editer manuellement les differentes parts, ainsi on sait exactement ce que l'on peut saisir à l'emplacement et donc on risque nettement moins de faire des erreurs

car en fait actuellement il n'y a pas de Framework encore suffisamment complet pour pouvoir editer ses parts via une interface graphique, il n'y a que le SDK que j'ai mis en lien mais qui actuellement est a son debut et fait pas beaucoup plus qu'avec windowbase, il y a aussi un projet qui a l'air vraiment interessant OpenXml4J qui est plus avancé mais ils ont trouvé le moyen de le developper pour Java (wygwam-julien chable qui a justement un blog sur CodeS-SourceS) grr lol

le truc aussi qui me gene pour l'intellisense,c'est qu'il faut pas que l'application rame des que en plus la part ouverte comporte 5000 ou plus de lignes ...,pour ca il faudrait egalement que j'ameliore la coloration syntaxique qui a deja tendance a monopoliser pas mal de ressources

bon si je dois tout faire lol tu me donnes beaucoup de bouleau lol
++
cs_mathmax
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

26 juil. 2007 à 11:10
Ce que je voulais dire par : "quitter l'application pour que les modifications s'appliquent", c'est que je ne peux pas ouvrir le package avec Excel tant qu'il est ouvert avec ton application. (si j'essaie, j'obtiens un message d'erreur qui me dit que l'extension n'est pas valide. J'utilise office 2003 avec le plugin FileFormatConverters mais je pense que c'est la même chose avec office 2007) Donc je dois fermer ton appli à chaque fois que je veux voir ce que ça donne dans Excel, ce qui est un peu embêtant... L'idéal serait d'avoir un bouton "visualiser avec office" (directement dans l'appli et qui ouvre avec Excel, Word ou PowerPoint selon l'extension du package).

"il suffit d'aller dans les options et selectionner le chemin vers ou sauvegarder puis valider" : oui j'avais vu. Ce que je proposais, c'est de pouvoir choisir ce chemin aussi dans la boite de dialogue pour la création de package. Mais c'est vrai que c'est secondaire...

"pouvoir ouvrir plusieurs package en même temps et ouvrir chaque package-part dans un nouvel onglet" : En ce qui me concerne, j'ai souvent besoin de comparer 2 packages (un qui fonctionne et l'autre qui bug). C'est pour ça que j'ai pensé à ça.

"si on supprime une part, ca serait assez compliquer de pouvroir annuler" : sans aller jusqu'à là, ce serait bien déjà de pouvoir annuler/restaurer les modifications faite dans une part.

Après je pensais aussi à ajouter un peu plus d'intellisens dans l'édition du XML (comme ce qui se fait dans Visual Studio). Avec éventuellement de l'auto complétion des balises grâce à un schema XML pour Open Xml. Mais là je pense que c'est un peu plus difficile à faire...

Je vais regarder ce Microsoft SDK for Open XML Formats. S'agit-il d'un modèle objet qui permet de faire de l'Open Xml ?

Merci encore pour ce programme. Il m'est vraiment très utile ;-)
romagny13
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
3
26 juil. 2007 à 09:54
Salut MathMax ,excellentes suggestions !!
alors je vais essayer de repondre dans l'ordre :
- "pouvoir ajouter un fichier" : oui c'est vrai que actuellement on ne peut ajouter qu'une image dans le package,c'est une chose à laquelle j'avais pensé
- "quitter l'application pour que les modifications " ?? je ne comprends pas trop , il suffit de sauvegarder une part lorsqu'on la modifié
- "préciser un chemin où l'on souhaite l'enregistrer" : c'est deja possible, par defaut les fichiers sont sauvegardés dans "mes documents" mais il suffit d'aller dans les options et selectionner le chemin vers ou sauvegarder puis valider (bouton validate)
- "pouvoir ouvrir un package par glisser-déposer dans l'application" : oui c'est rapidement faisable vu que je l'avais deja fait pour une autre appli
- "pouvoir ouvrir plusieurs package en même temps et ouvrir chaque package-part dans un nouvel onglet" : la je suis moins pour , je ne suis pas trop adepte pour ouvrir "50" onglets je prefere que l'on se consacre sur une part à la fois ,ou un package à la fois, même si c'est vrai que parfois on aurait besoin d'avoir plusieurs part d'ouvertes en meme temps notamment avec les relations (exemple recuperer un rId pour l'appliquer dans word/document.xml), je vais reflechir ..

- annuler (ctrl+Z) et restaurer (ctrl+Y): oui c'est faisable(il faut utiliser le pattern command)
même si pour un package c'est quand même particulier (exemple si on supprime une part, ca serait assez compliquer de pouvroir annuler)

je ne suis plus trop sur cette application en ce moment mais je vais peut etre m'y remettre ce week end


sinon tiens pendant que j'y suis je te mets un lien vers Microsoft SDK for Open XML Formats, qui est le début de framework pour mieux interagir avec le package(tout n'est pas implementer) mais cela peut t'interesser si tu connais pas
http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=en
si tu as d'autres idées oui je veux bien :p :)
++
cs_mathmax
Messages postés
403
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
31 août 2008

24 juil. 2007 à 16:47
J'oubliais aussi :
- pouvoir ouvrir plusieurs package en même temps et ouvrir chaque package-part dans un nouvel onglet.
- pouvoir annuler (ctrl+Z) et restaurer (ctrl+Y).
J'ai pleins d'autre idées, mais je n'ose pas trop en poster. Je crois que j'ai mis l'essentiel en ce qui me concerne. En tous cas merci beaucoup. Cette petit application m'aide beaucoup pour faire mes tests avec ce format de fichier.
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.