Génération de documents Office avec Open XML et VSTO

49
1 Génération de documents Office côté serveur avec Open XML et VSTO Julien Chable http://blogs.developpeur.org/n Consultant / Développeur Wygwam Code Session : POS206 Sébastien Bovo http://blogs.msdn.com/sbovo/ Apps Development Consultant Microsoft

Transcript of Génération de documents Office avec Open XML et VSTO

1

Génération de documents Office côté serveur avec Open XML et VSTO

Julien Chablehttp://blogs.developpeur.org/neodante Consultant / DéveloppeurWygwam

Code Session : POS206

Sébastien Bovohttp://blogs.msdn.com/sbovo/Apps Development ConsultantMicrosoft

2

L’innovation par la compétence et l’expertise7 MVP + 1 RD

3

Agenda

Développement Office client avec VSTORuban OfficeVolet d’actions et de taches OfficeWord Content Controls

Le format Open XML, de la théorie …… à la pratique avec le SDK Open XML v2Les outilsSynthèseQ&A

4

VSTO pourquoi faire ?

Aider les développeurs à facilement intégrer leur logique métier dans Microsoft Office

Développement d’Office Business ApplicationsBénéficier d’une ergonomie et d’une interface connues des utilisateursPermettre la création d’applications riches

SécuriséesFacilement déployables et maintenablesRapides à développer

5

VSTO qu’est ce que c’est ?

Visual Studio Tools for Office= Socle technologique pour implémenter le

concept OBA à travers

Gère la « plomberie » et l’intégration dans les applications

Word ExcelPowerPoint OutlookVisio ProjectInfoPath SharePoint

6

Les Add-Ins VSTO

Structure de code permettant le développement des solutions Office :

AddIn Applicatif AddIn Applicatif : Associé à l’application Office : Associé à l’application Office (disponible pour tous les documents)(disponible pour tous les documents)AddIn Document AddIn Document : Associé à un document, Classeur : Associé à un document, Classeur Excel ou modèle de documentExcel ou modèle de document

Permet l’intégration dans OfficePermet l’intégration dans OfficeAccès au modèle objet de l’application cibleAccès au modèle objet de l’application cibleGère le chargement/déchargementGère le chargement/déchargement

7

Personnalisation du ruban Office

Nouveauté de l’interface Office 2007Nouveauté de l’interface Office 2007Remplace les menus et sous menusRemplace les menus et sous menusDonne un accès direct aux fonctionnalités en les Donne un accès direct aux fonctionnalités en les regroupant par thème regroupant par thème Extensible au niveau application & document pour Extensible au niveau application & document pour Word, Excel, Outlook & PowerPointWord, Excel, Outlook & PowerPoint

8

Personnalisation du ruban Office

Visual Studio 2008 fournit un DesignerAjouter des onglets / groupes et contrôlesModifier les propriétés et les comportements

9

Personnalisation du ruban

10

Volet d’actions ou de taches

ActionsPaneAssocié à un document Word ou ExcelAccessible dès l’ouverture du documentFournit des actions propres au document

CustomTaskPane :Associé à une application OfficeDisponible durant la durée de vie du processusFournit des actions pour tous les documents

11

Word Content Controls

Disponible pour Word 2007 au niveau document Définir des zones de contenu de données spécifiques pour structurer vos documents

En contrôlant l’interaction de l’utilisateurEn protégeant des sections de documents de toutes modifications

Liaison des contrôles aux données sur le modèle des Windows Forms (Objets managés ou source de données)Complètement intégré à Visual Studio

12

Volet d’actions et Word Content Controls

13

14

Le format Office Open XMLVue de Vue de l’utilsateurl’utilsateur

MonDoc.docxMonDoc.docx

Vue du développeur : un fichier Vue du développeur : un fichier zip avec des parties XMLzip avec des parties XML

Propriétés du documentPropriétés du document

Fichier conteneurFichier conteneur

CommentairesCommentaires

WordML/SpreadsheetML, etc.WordML/SpreadsheetML, etc.

XML personnaliséXML personnalisé

Images, video,s sonsImages, video,s sons

StylesStyles

GraphiquesGraphiques

15

Un SDK Open XML pourquoi faire ?

Permet aux développeurs d’accéder aux documents sans nécessiter Office Automation

Les outils actuels des développeurs Open XMLWinZip, MSXML, et Notepad System.IO.Packaging, System.XML, et LINQ

Le futur des développements Open XMLOpen XML SDK v1 et v2

16

Office Automation

17

Un SDK Open XML pourquoi faire ?

Créer des solutions pour des documents Office… sur le client et le serveur… à la hauteur de la tâche (sans Office Automation)

Le modèle objet n’a pas été conçu pour des scénarii serveurNe convient pas en terme charge

Essayer de manipuler 100 documents

Les boîtes de dialogue “stop” l’automationPratique : les clients reboot l’application toutes les X heures

18

SDK Open XML v2

19

Un SDK Open XML pourquoi faire ?

Remplacer Office Automation (enfin ?)Des avantages :

SécuritéPerformance (multithread/multicore/réparti) ~100+ rapide !StabilitéMontée en chargeEtc

Apporter une API et des outils d’aide aux développeurs

20

Le SDK Office Open XML

Le SDK Open XML permet un accès aux parties et au contenu des documentsRapide (… vraiment très rapide)Fonctionne en environnement client ou serveur

Même sous SharePoint

Aucun besoin d’Office pour manipuler des documents OfficeSupporte la programmation LinqSupporte actuellement ECMA 376

21

Formatage du contenu

Forcer les standard de formatage des Forcer les standard de formatage des organisations :organisations :

Open XMLProcessing

22

Inspection du contenuExemple 1 :Exemple 1 : supression des informations supression des informations

confidentielles, de suivi des modifications ou les confidentielles, de suivi des modifications ou les métadonnées des documents sortants.métadonnées des documents sortants.

Open XMLProcessing

Exemple 2 : suppression des macros ou de contenu pouvant porter atteinte des documents entrants.

Open XMLProcessing

23

Consommer des documents

Les utilisateurs créent des rapports dans un tableur, Les utilisateurs créent des rapports dans un tableur, qui seront ensuite chargé dans des applications qui seront ensuite chargé dans des applications serveur.serveur.

Système back-end(LOB/CRM/etc.)

Traitement Open XML

Environnement d’édition(Microsoft Office, etc.)

24

Assemblage de documents

Exemple :Exemple : création de document de prévision création de document de prévision depuis les données stockées dans un CRM.depuis les données stockées dans un CRM.

Client riche ou webpermettant aux utilisateurs de saisir oude sélectionner des critères. Traitement

Open XML

25

Utilisation du Custom XML

Exemple :Exemple : marquer le contenu d’un document marquer le contenu d’un document avec une sémantique personnalisée pour avec une sémantique personnalisée pour traitement dans un système serveur.traitement dans un système serveur.

Environnement d’édition

Traitement Open XML

26

SDK Open XML v2

Démo commune

27

Le SDK Open XML v1

• Typage des classes des parties• Le SDK v1 permet de manipuler les parties uniquement

(surcouche de System.IO.Packaging)• Disponibilité du Open XML SDK :

• La version 1 est disponible aujourd’hui en Go Live• Espace de nom

Microsoft.Office.DocumentFormat.OpenXml.Packaging

28

Le SDK Open XML v2

• Utilisation de System.IO.Packaging• Le SDK v2 permet de manipuler le contenu• Disponibilité du Open XML SDK en Community Preview

• Devrait être disponible en même temps que “Office 14”• Espace de nom DocumentFormat.Open Xml

29

Génération d’un document Word

usi ng (Wordprocessi ngDocument package = Wordprocessi ngDocument . Create(docName, Wordprocessi ngDocument Type. Document ) ){

/ / Aj outer une par t i e de contenu au document package. AddMai nDocument Par t ( ) ;/ / Créer l e contenu de vot re document

package. Mai nDocument Par t . Document = new Document ( new Body( new Paragraph(

new Run( new Text ( " Bonj our à tous! " ) ) ) ) ) ;

/ / Enregi st rer l e contenu dans l e document package. Mai nDocument Par t . Document . Save( ) ;

}

30

SDK Open XML v2

31

Architecture SDK Open XML

System Support

.Net 3.5 System.IO.PackagingOpen XML Schemas

Open XML File Format Base Level

Reading/Writing Low Level DOM Packaging API

Open XML File Format Higher Level

Schema Level Validation

Semantic Level Validation

Helper Functions

32

Le SDK Open XML n’est pas …

… un remplacement du modèle objet d’Office (VBA ou VSTO),… une aide absolue. Vous manipulez le format Open XML, vous devrez connaître celui-ci,… un convertisseur de formats (Open XML vers HTML, XPS vers Open XML, etc),… capable de valider un document si vous modifiez vous-même le XML des parties sans passer par le modèle objet du SDK,… n’est pas une boîte à outils fonctionnels.

33

34

OpenXml Diff – SDK v2

Permet de faire la différenciation de documents Open XML

35

Class Explorer – SDK v2

Véritable documentation :ClassesSpécifications ECMA-376

36

Document Reflector – SDK v2

Outil pour débutants et expertsGénération du code C# utilisant le SDK Open XML à partie d’un document

37

38

VSTO PowerTools

Ouvre et édite les documents Open XML dans Visual Studio

http://www.microsoft.com/downloads/details.aspx?FamilyID=46B6BF86-E35D-4870-B214-4D7B72B02BF9

39

Open XML Viewer

Convertisseur Open XML HTMLProjet Open Source disponible sur Codeplex:

http://www.codeplex.com/OpenXMLViewer

40

B2XConverter

Convertisseur binaires (Word, Excel, PPt) Open XMLGuide de conversionMigration massive de documentsDisponible sur sourceforge :http://b2xtranslator.sourceforge.net/

41

PowerTools Open XML

Un ensemble de +30 cmdlets pour créer ou modifier les documents Open XML

Suppression des commentaires, acceptation des révisions, etc.

Supporte les “pipes” de PowerShellConstruit sur base du Open XML SDK v1Disponible sur CodePlex sous licence Ms-PL www.codeplex.com/PowerTools

Les IT et les développeurs peuvent créer des scripts batch en utilisant PowerTools

42

PowerTools for Open XML

43

Implementation Notes

Détail de l’implémentation du format Open XML ECMA-376 dans Office 2007

44

45

Synthèse

VSTO permet de créer des solutions côté client en profitant des avantages de la suite OfficeOffice Open XML est un standard ouvert ISOLe SDK Open XML v2 est une abstraction quasi complète du format Office Open XMLLe format Open XML permet de créer des documents Office côté serveur sans OfficeAujourd’hui, une pléthore d’outils, de SDKs sur tous les environnements et toutes les plateformes

46

Références

Centre de développement VSTO : http://msdn.microsoft.com/fr-fr/vsto/default(en-us).aspx

Téléchargement du SDK Open XML v1 : http://go.microsoft.com/fwlink/?LinkId=120908

Téléchargement du SDK Open XML v2 : http://go.microsoft.com/fwlink/?LinkId=127912

Site Connect du SDK : https://connect.microsoft.com/site/sitehome.aspx?SiteID=589

OpenXML Developers : www.openxmldevelopers.com Blog Julien Chable dédié à Open XML : http://blogs.developpeur.org/neodante/

47

48

Génération de documents Office côté serveur avec OpenXML et VSTO

Julien Chablehttp://blogs.developpeur.org/neodante Consultant / DéveloppeurWygwam

Code Session : POS206

Sébastien Bovohttp://blogs.msdn.com/sbovo/Apps Development ConsultantMicrosoft

49

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,

IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Votre potentiel, notre passion TM