![Page 1: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/1.jpg)
« Les Mercredis du développement »« Les Mercredis du développement »
Nouveau format de fichierNouveau format de fichierTemplate SolutionTemplate Solution
Présenté par Pierre Lagarde
[email protected] Développeurs
Microsoft France
Level 200Level 200Level 200Level 200
![Page 2: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/2.jpg)
Nouveau format de fichier Office "12"Nouveau format de fichier Office "12"IntroductionIntroduction
ArchitectureArchitecture
AvantagesAvantages
Scénario de développementScénario de développement
Template Office "12"Template Office "12"Customisation de l’interface utilisateurCustomisation de l’interface utilisateur
Données XML dans les documentsDonnées XML dans les documents
AgendaAgenda
![Page 3: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/3.jpg)
Evolution des formats Evolution des formats
Office 2000InnovationPropriétés du
document sauvegardé en XML
Office 97Nouveau format binaire(celui d’aujourd’hui)
Office XPPremier format XMLFeuille de calcul Excel
Office 2003Support du format XMLWordML, ExcelMLSchéma métier
Office “12”Nouveaux formats
XMLFormat XML par défautWord, Excel,
Powerpoint
“12”
![Page 4: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/4.jpg)
Manipuler les documents Manipuler les documents office aujourd’huioffice aujourd’hui
Office 2000/XPOffice 2000/XPPar automation en utilisant le model objet COMPar automation en utilisant le model objet COM
Scénario server, installer Office sur le serveurScénario server, installer Office sur le serveurPas supportéPas supporté
Problème de performanceProblème de performance
Problème de montée en chargeProblème de montée en charge
Office 2003Office 2003Meilleur support des scénarii serveurMeilleur support des scénarii serveur
WordML et ExcelMLWordML et ExcelML
Mise à disposition d’un « Data Island » manipulable via des Mise à disposition d’un « Data Island » manipulable via des class de VSTOclass de VSTO
Nécessite la connaissance des schémas XML Office 2003Nécessite la connaissance des schémas XML Office 2003
Nécessite parfois des transformations XSLTNécessite parfois des transformations XSLT
![Page 5: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/5.jpg)
Microsoft Office Open XML Microsoft Office Open XML File FormatsFile Formats
Macro-FreeMacro-Free Macro-EnabledMacro-Enabled
DocumentDocument TemplateTemplate DocumentDocument TemplateTemplate
docx dotx docm dotm
pptx potx pptm potm
xlsx xltx xlsm xltm
Open Packaging ConventionOpen Packaging Convention
![Page 6: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/6.jpg)
CompatibilitéCompatibilité
Office "12"Office "12"Support des formats Office 97-2003 binaireSupport des formats Office 97-2003 binairePossibilité de changer le type de Possibilité de changer le type de sauvegarde par défautsauvegarde par défautContinuité dans le format XML d’Office Continuité dans le format XML d’Office 2003 et XP2003 et XP
Office 2000, Office XP, Office 2003 Office 2000, Office XP, Office 2003 supporteront le nouveau formatsupporteront le nouveau format
Patch disponible au lancement d’Office Patch disponible au lancement d’Office "12""12"Ouverture, Edition et SauvegardeOuverture, Edition et Sauvegarde
![Page 7: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/7.jpg)
Office Open XML ArchitectureOffice Open XML Architecture
Questionnaire.docx
Vu Utilisateur: Un seul fichier
![Page 8: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/8.jpg)
Office Open XML ArchitectureOffice Open XML Architecture
Questionnaire.docx
Vu Utilisateur: Un seul fichier
Vu développeur: fichier zip
Questionnaire.docx
![Page 9: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/9.jpg)
Office Open XML ArchitectureOffice Open XML Architecture
Questionnaire.docx
Questionnaire.docx
Package
Vu Utilisateur: Un seul fichier
Vu développeur: fichier zip
![Page 10: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/10.jpg)
Office Open XML ArchitectureOffice Open XML Architecture
Questionnaire.docx
Questionnaire.docx
Package
[Content Types].xml
Vu Utilisateur: Un seul fichier
Vu développeur: fichier zip
![Page 11: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/11.jpg)
Office Open XML ArchitectureOffice Open XML Architecture
Questionnaire.docx
Questionnaire.docx
Package
Document Partsword / xl /ppt
[Content Types].xml
Vu Utilisateur: Un seul fichier
Vu développeur: fichier zip
![Page 12: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/12.jpg)
Office Open XML ArchitectureOffice Open XML Architecture
Questionnaire.docx
Questionnaire.docx
Package
Document, Application, Custom Document PropertiesdocProps
Document Partsword / xl /ppt
[Content Types].xml
Vu Utilisateur: Un seul fichier
Vu développeur: fichier zip
![Page 13: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/13.jpg)
Office Open XML ArchitectureOffice Open XML Architecture
Questionnaire.docx
Questionnaire.docx
Package
Relationships_rels
Document, Application, Custom Document PropertiesdocProps
Document Partsword / xl /ppt
[Content Types].xml
Vu Utilisateur: Un seul fichier
Vu développeur: fichier zip
![Page 14: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/14.jpg)
Office Open XML ArchitectureOffice Open XML Architecture
Questionnaire.docx
Questionnaire.docx
Package
Relationships_rels
Document, Application, Custom Document PropertiesdocProps
Document Partsword / xl /ppt
[Content Types].xml
Custom Defined XML, Macros, …custom fld
Vu Utilisateur: Un seul fichier
Vu développeur: fichier zip
![Page 15: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/15.jpg)
Nouveau format de fichierNouveau format de fichier
demodemo
![Page 16: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/16.jpg)
Scénario DéveloppeurScénario Développeur
Créer des solutions de lecture, écriture Créer des solutions de lecture, écriture modification sur les fichiers Office sans passer modification sur les fichiers Office sans passer par l’API Officepar l’API Office
Utilisation des API WinFX Utilisation des API WinFX
Ouverture du fichier Open XML OfficeOuverture du fichier Open XML Office
Maintien des « Part » et des « Relations » dans le Maintien des « Part » et des « Relations » dans le fichierfichier
Programmation XMLProgrammation XML
XPath – Navigation dans le contenuXPath – Navigation dans le contenu
XML DOM – Manipulation du contenuXML DOM – Manipulation du contenu
![Page 17: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/17.jpg)
API WinFxAPI WinFx
Microsoft WinFX Software Development Microsoft WinFX Software Development Kit (SDK CTP Janvier)Kit (SDK CTP Janvier)
System.IO.Packaging namespace System.IO.Packaging namespace Ajouter des “Part”, Ajouter des “Part”,
Mise à jour du contenu, Mise à jour du contenu,
Créer des nouvelles relationsCréer des nouvelles relations
Importer les ClassesImporter les ClassesPackage, Package,
PackagePart, PackagePart,
PackageRelationshipPackageRelationship
![Page 18: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/18.jpg)
System.IO.PackagingSystem.IO.Packaging
using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); }}
1.1. Open the packageOpen the package
![Page 19: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/19.jpg)
System.IO.PackagingSystem.IO.Packaging
using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); }}
1.1. Open the packageOpen the package
2.2. Access a document part (GetPart)Access a document part (GetPart)
![Page 20: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/20.jpg)
System.IO.PackagingSystem.IO.Packaging
using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); }}
1.1. Open the packageOpen the package
2.2. Access a document part (GetPart)Access a document part (GetPart)
3.3. Create a document part (CreatePart)Create a document part (CreatePart)
![Page 21: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/21.jpg)
System.IO.PackagingSystem.IO.Packaging
using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); }}
1.1. Open the packageOpen the package
2.2. Access a document partAccess a document part
3.3. Create a document partCreate a document part
4.4. Add content to the document partAdd content to the document part
![Page 22: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/22.jpg)
Scénario développeurScénario développeur- Génération de document- Génération de document- Assemblage d’un document- Assemblage d’un document- Manipulation de document- Manipulation de document
demodemo
![Page 23: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/23.jpg)
Customisation de l’interface utilisateur Customisation de l’interface utilisateur dans les templates Office "12"dans les templates Office "12"
Les templates Office "12" peuvent stocker un fichier Les templates Office "12" peuvent stocker un fichier XML de description d’interface pourXML de description d’interface pour
Ajouter des ongletsAjouter des onglets
Ajouter des entrées dans le menu fichierAjouter des entrées dans le menu fichier
Ajouter des contrôles dans les ongletsAjouter des contrôles dans les onglets
AvantagesAvantagesCustomisation de l’interface utilisateur par template de Customisation de l’interface utilisateur par template de documentdocument
Facile à mettre en place pour le développeurFacile à mettre en place pour le développeur
![Page 24: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/24.jpg)
Deux méthodes de Deux méthodes de customisation de l’interfacecustomisation de l’interface
Dans le template (Statique)Dans le template (Statique)Inclu dans le documentXInclu dans le documentXPossibilité de faire des actions Possibilité de faire des actions via VBAvia VBA
Sous forme d’Application Sous forme d’Application (dynamic)(dynamic)
Via .NET « shared add-in »Via .NET « shared add-in »
Specific Doc/Template
Doc Parts
Custom UI
ActionHandlers
Any Document
Custom UIAction
Handlers
Shared Add-In
![Page 25: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/25.jpg)
Customisation (Statique)Customisation (Statique)1.1. Créer un fichier XML de description du Créer un fichier XML de description du
RubanRuban2.2. Ouvrir le fichier ZIP Office "12"Ouvrir le fichier ZIP Office "12"3.3. Ajouter le fichier XML Ruban au ZIPAjouter le fichier XML Ruban au ZIP4.4. Ajouter un nouveau « Content type »Ajouter un nouveau « Content type »
5.5. Ajouter une nouvelle relation Ajouter une nouvelle relation
6.6. Renommer le fichier ZIP en template Office Renommer le fichier ZIP en template Office "12""12"
<Override PartName="/customui/customui.xml“ContentType="application/xml"/>
<Relationship Id="rId*" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility"
Target="customui/customui.xml"/>
![Page 26: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/26.jpg)
Customisation (Statique)Customisation (Statique)
demodemo
![Page 27: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/27.jpg)
Stockage XML dans les Stockage XML dans les documents Office “12”documents Office “12”
Les données XML sont Les données XML sont séparées du reste du séparées du reste du documentdocument
Toutes les données sont Toutes les données sont stockés en XML stockés en XML
Les propriétés du documentLes propriétés du document
Les métadonnées WSSLes métadonnées WSS
Les données utilisateurs (avec ou Les données utilisateurs (avec ou sans schéma)sans schéma)
Les données XML sont Les données XML sont exploitables via DOM sans exploitables via DOM sans utiliser l’API Office "12"utiliser l’API Office "12"
Doc/Template
Doc Parts
VBA
XML
External App
![Page 28: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/28.jpg)
Les XML dans les documents Les XML dans les documents
Sans schéma Sans schéma (VBA ou WordML et Excel ML)(VBA ou WordML et Excel ML)
![Page 29: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/29.jpg)
Les XML dans les documentsLes XML dans les documents
Avec schémaAvec schéma
Customers
oContentControl.XMLMapping.SetMapping(xpath, , oCustomXMLPart)
![Page 30: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/30.jpg)
Données métier XML dans Données métier XML dans les documents Office "12"les documents Office "12"
demodemo
![Page 31: « Les Mercredis du développement » Nouveau format de fichier Template Solution Présenté par Pierre Lagarde pierlag@microsoft.com Relation Développeurs](https://reader035.vdocuments.mx/reader035/viewer/2022062621/551d9d80497959293b8b8c3d/html5/thumbnails/31.jpg)