Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[.NET 3.0] OPENXML MANAGER - CHARGEMENT ET EDITION/SAUVEGARDE DES DOCUMENTS OPENXML


Information sur la source

Catégorie :Applications Source .NET ( DotNet ) Classé sous : openxml, net30, xml, package, office Niveau : Initié Date de création : 19/06/2007 Date de mise à jour : 09/07/2007 01:20:51 Vu / téléchargé: 7 150 / 411

Note :
Aucune note

Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
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)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

19 juin 2007 02:38:50 :
.orthographe
19 juin 2007 12:23:00 :
. prise en charge tous les documents et modèles office 2007 (excel,powerpoint,etc.),visualiseur d'images
20 juin 2007 00:52:57 :
. coloration syntaxique (xml est plus clair et lisible avec des couleurs)
20 juin 2007 13:10:17 :
.
20 juin 2007 23:48:42 :
. fenetre rechercher remplacer (regex + recherhce sur l'ensemble du package), insertion image dans le package,etc .
22 juin 2007 01:42:59 :
. nombreux ajouts :)
22 juin 2007 01:51:48 :
.
24 juin 2007 00:46:11 :
. nombreuses choses voir ajouts dans la liste
29 juin 2007 00:27:13 :
. une petie mise à jour : un lecteur de codes snippets (pour pouvoir lire les extraits de codes mis à disposition pour OpenXml sur le site msdn)(note : il dispose d'une richtextbox reconnaissant la coloration syntaxique pour plusieurs languages xml,vb,csharp) - en attendant de vraies nouveautés,je reflechis pour ajouter l'intellisense(car rien ne vaut en fait l'intellisense),mais cela risque d'être pâs forcement simple car il faudrait parfois que je gére plusieurs schémas xml en même temps - j'ai également réorganisé les classes de gestion des packages en vue de préparer le terrain pour Excel et Powerpoint
30 juin 2007 19:10:28 :
.creation de packagepart
07 juillet 2007 19:14:24 :
. possibilité de supprimer une packagepart
07 juillet 2007 19:35:43 :
.
08 juillet 2007 21:57:47 :
. création desormais possible de package Excel et Powerpoint à partir de rien . légére réorganisation amélioration des classes de management de OpenXml
09 juillet 2007 01:20:51 :
.

Commentaires et avis

signaler à un administrateur
Commentaire de Willi le 19/06/2007 13:00:18 administrateur CS

Pouaa je n'ai pas encore regardé le code mais merci pour cette source il fallait bien que quelqu'un se lance sur le sujet :)

Bonne continuation.

signaler à un administrateur
Commentaire de romagny13 le 20/06/2007 01:10:37

Baa le code est "en travaux" :p lol
surtout que je sais pas si ca vient de moi mais j'ai tendance à peiner avec OpenXml, j'ai essayé de créer un document word à partir de rien (pas avec que le "minimum") c'est à dire tous les fichiers et relations mais il faudra que je m'y remette parce que la je n'ai pas réussi completement, en fait apres je pensais pouvoir tout simplement permettre par exemple l'ajout dynamique d'images dans le package (+ le dossier media donc)
et dans l'idée je veux voir en OpenXml une utilisation plus professionnelle (entreprise) car c'est la que je vois le vrai interet (peut etre) de ce format

++

signaler à un administrateur
Commentaire de mathmax le 07/07/2007 16:29:45

Bonjour,

j'ai un problème pour mettre à jour une feuille de mon document Excel. Tous les fichier présents dans le package sont supprimés alors que je voudrait seulement écraser la feuille que je met à jour.
Voici le code que j'utilise pour sauvegarder le package :

            Package pkgOutputDoc = Package.Open(fileName, FileMode.Create, FileAccess.ReadWrite);
            Uri uri = new Uri(string.Format("/xl/worksheets/sheet{0}.xml", sheetNumber), UriKind.Relative);
            PackagePart partSheetXml = pkgOutputDoc.CreatePart(uri, "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml");
            StreamWriter streamStartPart = new StreamWriter(partSheetXml.GetStream(FileMode.Create, FileAccess.Write));
            xmlStartPart.Save(streamStartPart);
            streamStartPart.Close();
            pkgOutputDoc.Flush();
            pkgOutputDoc.CreateRelationship(uri, TargetMode.Internal,
                                            "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
                                            "rId1");
            pkgOutputDoc.Flush();
            pkgOutputDoc.Close();

Avez-vous une idée du problème ?

merci d'avance.

signaler à un administrateur
Commentaire de romagny13 le 07/07/2007 19:21:55

Bonjour
c'est simple
cela provient de la premiere ligne de code

vous ouvrez le package en création(FileMode.Create)(du coup cela écrase tout les fichiers)
alors qu'il faudrait le faire avec FileMode.Open par exemple :

Package pkgOutputDoc = System.IO.Packaging.Package.Open(FileName, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite);

sinon je viens d'ajouter la possibilité de supprimer les parts (packagepart) à l'application
en attendant que je me remette sur l'appli (je reflechis même pour développer un mini framework pour mieux gérer les differents "types" de packages(Excel,Word,Powerpoint) et pour chacun les fichiers spécifiques, je m'inspire un peu de ce qui est fait pour System.XmlSchema) et je reflechis aussi pour ajouter l'intellisense ce qui serait pas mal (même si certains packageparts je risuqe de peiner car il faudrait gérer plusieurs schémas xml simultanément encore que ce soit surtout qu'il faut que l'application ne "rame" pas trop)

+

signaler à un administrateur
Commentaire de romagny13 le 08/07/2007 22:09:35

Bon j'ai ajouté la possibilité de créer un package Excel ou Powerpoint (en plus de Word) à partir de rien ,j'utilise beaucoup LoadXml XmlDocument mais bon il y a toutes les relations, cela devrait interesse certains ;)
bon il reste plus qu'à implementer les custom xml parts ,surement la prochaine etape

signaler à un administrateur
Commentaire de mathmax le 24/07/2007 16:38:35

Merci beaucoup !
Quelques suggestions :
- on ne peux pas ajouter de fichier xml dans le package. Par exemple j'aimerais pouvoir ajouter un fichier sharedStrings.xml
- il faut forcément quitter l'application pour que les modifications s'appliquent. Ca serait bien de pouvoir enregistrer sans quitter et éventuellement d'avoir un bouton de pré visualisation qui ouvre le package dans word, dans power point ou Excel selon l'extension
- quand on crée un package, ça serait bien de pouvoir préciser un chemin où l'on souhaite l'enregistrer. On peut l'écrire directement, mais c'est pas super pratique. Donc un browser comme dans les options serait le bienvenue je crois.
- pouvoir ouvrir un package par glisser-déposer dans l'application.

signaler à un administrateur
Commentaire de mathmax le 24/07/2007 16:47:39

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.

signaler à un administrateur
Commentaire de romagny13 le 26/07/2007 09:54:30

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 :)
++

signaler à un administrateur
Commentaire de mathmax le 26/07/2007 11:10:16

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 ;-)

signaler à un administrateur
Commentaire de romagny13 le 26/07/2007 20:34:30

- 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
++

signaler à un administrateur
Commentaire de amjadlr le 07/07/2008 21:10:25

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.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

ruban office - ou trouver le schema xml [ par romagny13 ] Bonjour, sauriez vous ou on peut trouver le schéma XML (http://schemas.microsoft.com/office/2006/01/customui)<font color="#000000" siz La page XML ne peut pas être affichée [ par wadavision ] Impossible d'afficher l'entrée XML en utilisant la feuille de style XSL. Corrigez l'erreur, puis cliquez sur le bouton <a href="javascript:lo [c#] Serialization XML [ par cedkat ] Bonjour,Voilà mon problème, j'ai créer un objet que je serialize en xml. Cette oblet contient une ArrayList comme ceci :[XmlArray("voitures", IsNullab [OpenXml] - les deux points dans les balises [ par romagny13 ] Bonjour,voila j'ai un problême lorsuqe je génére le fichier document.xml (OpenXml)les balises sont de la forme &lt;w:p&gt; ou &lt;w:r&gt; par exemple Serialisation XML vers base de données [ par gautier ] Salut à tous,Voici mon problème j'utilise la serialisation XML pour enregistrer les sauvegardes de mon application dans une base de données.La command Fichier Xml avec un espace de noms [ par yanis7518 ] Salut à tousvoila j'essaie de parser un fichier xml qui ressemble à ça : &lt;?<span class=" créer un fichier XML [ par tendresse_isi ] slt tt le monde  , je voudrais savoir cmt utiliser un data set pr pouvoir creer un fichier xml a fur et a mesur k je li un fichier texte XML to PDF SANS NFOP [ par laurent57150 ] Bonjour,Quelqu'un sait si il existe une alternative à NFop pour la transformation de XML en Pdf?Merci,Laurent Modifier info dans un fichier XML [ par romauto750 ] Bonjour à tous,Peut être une question simple mais qui me pose problème. Je débute avec le XML et j'aimerai modifier un élément à l'intérieur de celui [c#, vs2005] Mettre un rapport dans un site [ par ludo27600 ] bonjour,je l'ai fait une fois, mais je n'arrive pas à mettre un rapport dans un site.Voici en gros les étapes que j'avais faites la fois où ça a march


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.