Numéro d'article: 288215 - Dernière mise à jour: mardi 23 janvier 2007 - Version: 3.0 INFO : Microsoft Excel 2002 et XML
Résumé
Excel 2002 permet d'ouvrir et d'enregistrer des fichiers au format XML (Extensible Markup Language). Cet article fournit un aperçu du langage XML et des feuilles de style XML et de la manière dont vous pouvez les utiliser avec Excel. Il contient les rubriques suivantes :
Qu'est-ce que le langage XML ? Qu'est-ce qu'une feuille de style XML ? Comment Excel convertit-il les fichiers XML ? Mise à plat du code XML Le format XML Spreadsheet (XMLSS)Feuilles de style Dépannage des erreurs survenant lors de l'ouverture de fichiers XML Intégration du langage XML dans vos solutions Excel Plus d'informationsQu'est-ce que le langage XML ?Le langage XML est un format de texte pour données structurées. Étant donné sa simplicité de création et d'interprétation, on l'utilise dans une large gamme d'applications. Du code XML correct (ou bien formé) répond à un ensemble de directives dictant la structure des données, tout en offrant au développeur XML une flexibilité accrue pour la création d'une quantité illimitée de balises personnalisées décrivant au mieux les données et les relations existant au sein de ces données.Comme le langage HTML, le langage XML est un langage de balisage dont le texte est constitué d'une combinaison de balises (mots compris entre crochets pointus < et >) et d'attributs (de la forme nom = "valeur"). Mais alors que le langage HTML spécifie la signification de chaque balise et attribut et la manière dont ils doivent être affichées, le langage XML utilise des balises uniquement pour délimiter des éléments de données. Puisque vous pouvez utiliser n'importe quel nom de balise avec le langage XML, l'interprétation et la signification des données dépendent entièrement de l'application. Bien que les développeurs XML soient libres de créer les balises ou la hiérarchie les plus adaptés à leurs données, il existe un ensemble de spécifications à respecter afin de s'assurer que le langage XML est considéré comme bien formé. Du code XML bien formé présente les caractéristiques suivantes :
Le code XML de la figure 1 décrit des entrées de dictionnaire. L'élément racine est <Dictionary>, et la racine contient un élément enfant nommé <Entries>. <Entries> contient trois enfants, chacun décrivant les données d'une entrée du dictionnaire. Pour chaque entrée, il existe deux éléments enfants : <Word> et <Definition>. La valeur de chaque élément <Word> est le mot lui-même ; les éléments <Word> ont également un attribut Type qui précise si le mot est un adjectif (1) ou un nom (2). Les éléments <Definition> possèdent une valeur texte et aucun attribut. Qu'est-ce qu'une feuille de style XML ?Les balises XML décrivent les données dans un fichier texte, mais le code XML en lui-même ne spécifie pas la manière dont les données doivent être présentées à l'utilisateur. Les règles de mise en forme pour les données XML sont souvent contenues dans des feuilles de style XML. Les feuilles de style XML sont des documents XML bien formés qui utilisent le langage XSL (Extensible Style Language) pour transformer les données XML en vue de leur présentation. Vous pouvez avoir plusieurs feuilles de style pour les mêmes données XML. Même si votre structure de données XML peut demeurer la même, les feuilles de style apportent la flexibilité nécessaire à la présentation des données sous différentes formes.Dictionary.xsl, illustrée en figure 2, est une feuille de style pouvant être utilisée pour transformer l'exemple de code Dictionary.xml. La transformation a pour résultat une présentation HTML des données pouvant être affichée dans un navigateur Web. Le code XSL trie les entrées du dictionnaire par ordre alphabétique dans une liste à puces et met en forme chaque composant de l'entrée de dictionnaire. Le code XML transformé rendu dans le navigateur ressemble à ce qui suit :
Comment Excel convertit-il les fichiers XML ?Excel peut ouvrir n'importe quel fichier XML bien formé. Vous pouvez ouvrir les fichiers XML directement à partir de la commande Ouvrir du menu Fichier. Vous pouvez également les ouvrir par programme à l'aide de la méthode Open ou OpenXML de la collection Workbooks. Que vous ouvriez le fichier XML par l'intermédiaire de code ou de l'interface utilisateur, il est marqué en Lecture seule afin de prévenir tout remplacement accidentel du fichier source d'origine par un fichier au format XML Spreadsheet (XMLSS).Mise à plat du code XML Dans Excel, lorsque vous importez du code XML qui n'est pas au format XML Spreadsheet (XMLSS), Excel utilise un algorithme de mise à plat spécial permettant de charger les données dans des lignes et des colonnes. Les feuilles de calcul Excel sont des entités bidimensionnelles constituées de lignes et de colonnes ; le code XML pouvant avoir plus de deux dimensions, une mise à plat est nécessaire pour l'interpréter de façon à pouvoir le charger dans les cellules d'une feuille de calcul. Prenons les deux exemples de code XML suivants, qui représentent essentiellement les mêmes données de différentes manières : Si vous chargez le code XML de la figure 3 dans Excel, les données sont importées dans des cellules de la manière suivante : <TABLE BORDER=1 BORDERCOLOR="Black" CELLSPACING=0 STYLE="font-size:10pt" WIDTH="90%"> <TR ALIGN="Center"> <TD BGCOLOR="Silver"> </TD><TD BGCOLOR="Silver"><B>A</B></FONT></TD><TD BGCOLOR="Silver"><B>B</B></TD><TD BGCOLOR="Silver"><B>C</B></TD></TR> <TR> <TD BGCOLOR="Silver"><B>1</B></TD><TD>/Customer</TD><TD> </TD><TD> </TD></TR> <TR><TD BGCOLOR="Silver"><B>2</B></TD><TD>/CustomerID</TD><TD>/FirstName</TD><TD>/LastName</TD></TR> <TR><TD BGCOLOR="Silver"><B>3</B></TD><TD>1234</TD><TD>John</TD><TD>Doe</TD></TR> </TABLE> Excel traite les attributs exactement comme des éléments enfants. Pour éliminer toute collision de nom avec les éléments existants, Excel ajoute le signe arobase (@) devant les noms des attributs afin d'assurer la cohérence avec les normes d'affectation de noms relatives aux modèles XSL. Par conséquent, le code XML de la figure 4 est chargé de la même façon dans les cellules, excepté que les cellules A2, B2 et C2 contiennent respectivement "/@CustomerID", "/@FirstName" et "/@LastName". Le code XML des figures 3 et 4 suit une structure bidimensionnelle et donc facile à afficher. Prenons maintenant le code XML suivant, difficile à interpréter sous forme bidimensionnelle en raison de l'ajout du niveau <Order> : Dans le code XML de la figure 5, un client est associé à deux commandes et un autre client est associé à une seule commande. Excel doit importer le code XML de sorte que la relation entre Orders et Customers soit maintenue. Excel importe le code XML dans trois lignes, comme illustré ci-dessous : <BR/> <TABLE BORDER=1 BORDERCOLOR="Black" CELLSPACING=0 STYLE="font-size:10pt" > <TR ALIGN="Center"> <TD BGCOLOR="Silver"> </TD><TD BGCOLOR="Silver"><B>A</B></FONT></TD><TD BGCOLOR="Silver"><B>B</B></TD><TD BGCOLOR="Silver"><B>C</B></TD><TD BGCOLOR="Silver"><B>D</B></TD><TD BGCOLOR="Silver"><B>E</B></TD><TD BGCOLOR="Silver"><B>F</B></TD><TD BGCOLOR="Silver"><B>G</B></TD></TR> <TR> <TD BGCOLOR="Silver"><B>1</B></TD><TD>/Customer</TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR> <TR><TD BGCOLOR="Silver"><B>2</B></TD><TD>/Customer#id</TD><TD>/Customer/CustomerID</TD><TD>/Customer/CustomerID/#agg</TD><TD>/Customer/FirstName</TD><TD>/Customer/LastName</TD><TD>/Customer/Orders/Order/@Amt</TD><TD>/Customer/Orders/Order/@ProdID</TD></TR> <TR><TD BGCOLOR="Silver"><B>3</B></TD><TD>1</TD><TD>1234</TD><TD>1234</TD><TD>John</TD><TD>Doe</TD><TD>10</TD><TD>AAA</TD></TR> <TR><TD BGCOLOR="Silver"><B>4</B></TD><TD>1</TD><TD>1234</TD><TD> </TD><TD>John</TD><TD>Doe</TD><TD>3</TD><TD>BBB</TD></TR> <TR><TD BGCOLOR="Silver"><B>5</B></TD><TD>2</TD><TD>5678</TD><TD>5678</TD><TD>Alice</TD><TD>Smith</TD><TD>5</TD><TD>AAA</TD></TR> </TABLE><BR/> Deux colonnes ont été ajoutées : une colonne #id qui associe la ligne au n?ud <Customer> et une colonne #agg qui représente ce que l'on peut considérer comme une « recopie vers le bas ». Avec #agg, la valeur du premier noeud du niveau immédiatement supérieur est répertoriée une fois, puis omise sur les lignes suivantes. Notez également que la colonne de <Amt> précède celle de <ProdID> bien qu'elle apparaisse après <ProdID> dans le code XML. L'outil de mise à plat charge les éléments par ordre alphabétique de gauche à droite, et non dans l'ordre naturel dans lequel ils apparaissent dans le document XML d'origine. Feuilles de style L'utilisation de feuilles de style peut faciliter grandement l'ouverture des fichiers XML dans Excel. Elle permet de mieux contrôler le placement des données dans les cellules et même fournir des éléments de mise en forme pour celles-ci. Lorsque vous ouvrez un fichier XML dans Excel et que ce fichier XML contient une ou plusieurs instructions de traitement xml-stylesheet, Excel vous invite à sélectionner les feuilles de style à utiliser pour la transformation. Prenons de nouveau le code XML de la figure 5. L'ajout d'une instruction de traitement au code XML (<?xml-stylesheet type="text/xsl" href="Customer.xsl" ?>), permet de contrôler les colonnes de la feuille de calcul dans lesquelles les données apparaissent et d'appliquer une mise en forme personnalisée. Voici un exemple de feuille de style pouvant être utilisé pour transformer l'exemple XML de liste de clients. La feuille de style transforme le code XML en code HTML valide (qu'Excel peut convertir dans son format natif). Lorsque vous ouvrez le code XML de liste de clients en y appliquant cette feuille de style, Excel affiche les données sous forme de tableau à quatre colonnes avec des en-têtes (Customer ID, Name, Product ID et Amount). La mise en forme des cellules, telle que les attributs de la police, les couleurs d'arrière-plan des cellules et les bordures, est également présente dans le tableau. À essayer : Copiez et collez le code XML de la figure 5 dans un éditeur de texte quelconque et enregistrez-le sous le nom Customer.xml. Ensuite, copiez la feuille de style XML de la figure 6 et enregistrez-la sous le nom Customer.xsl dans le même dossier que Customer.xml. Démarrez Excel 2002 et ouvrez le fichier avec puis sans la feuille de style pour observer les différences. Dépannage des erreurs survenant lors de l'ouverture de fichiers XML Lorsque vous ouvrez un fichier XML mal formé, vous recevez un message d'alerte ou une "Erreur d'analyse de script". Les messages d'alerte précisent pourquoi Excel n'a pas réussi à ouvrir le fichier XML. La description de l'alerte peut également fournir des détails sur le noeud ayant provoqué l'échec de la conversion. Dans certains cas où une erreur d'analyse s'est produite, une boîte de dialogue répertoriant les erreurs peut s'afficher à la place du message d'alerte ; les erreurs d'analyse de script sont enregistrées dans un fichier nommé XMLErr.log dans le dossier Temp. Pour examiner rapidement le contenu du fichier XMLErr.log, procédez comme suit :
Le format XML Spreadsheet (XMLSS)Excel peut enregistrer des classeurs au format XML. Lorsque vous enregistrez un classeur au format XML, Excel l'enregistre au format XMLSS (XML Spreadsheet). XMLSS décrit le contenu du classeur en rendant les données et les formules de cellules, les formats de cellules, les paramètres de feuilles de calculs et les paramètres du classeur permanents. Toutefois, certaines fonctionnalités d'Excel ne peuvent pas être rendues permanentes au format XML parmi lesquelles :
Intégration du langage XML dans vos solutions ExcelL'utilisation de données XML offre au développeur de nombreuses opportunités pour la création de solutions Excel 2002.Par exemple, vous pouvez créer des classeurs à feuilles de calculs multiples au format XMLSS au moment de l'exécution sans automatiser Excel (ce qui exige le chargement du fichier exécutable Excel). Excel étant un serveur d'automation hors processus, les appels au modèle d'objets Excel peuvent être coûteux en termes de performances. Vous pouvez créer des fichiers XMLSS entièrement in-process en utilisant simplement l'Analyseur Microsoft XML (MSXML) et des feuilles de style XML. Ou vous pouvez utiliser le composant Microsoft Office XP Spreadsheet (in-process) pour générer une feuille de calcul et récupérer le XMLSS pour la feuille de calcul. Dans les deux cas, le XMLSS résultant peut être ouvert directement dans Excel comme format natif. En diffusant le XMLSS en continu aux navigateurs clients à l'aide du type de contenu MIME (Multipurpose Internet Mail Extensions) d'Excel, les applications Web telles que celles qui utilisent les pages ASP (Active Server Pages) peuvent créer des classeurs complexes sans avoir à exécuter Excel sur le serveur. Pour un exemple de code démontrant les utilisations possibles de la génération de XMLSS, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft : 288130
(http://support.microsoft.com/kb/288130/
)
Comment faire pour utiliser ASP pour créer une feuille de calcul XML à afficher côté client
285891
(http://support.microsoft.com/kb/285891/
)
Comment faire pour utiliser Visual Basic ou ASP pour créer une feuille de calcul XML pour Excel 2002 et Excel 2003
Une autre utilisation potentielle du langage XML dans une solution Excel consiste à extraire des données d'une plage de cellules dans un format pouvant être facilement partagé par d'autres applications. Le XMLSS peut être extrait des cellules d'une feuille de calcul en appelant la propriété Value de l'objet Range avec le paramètre xlRangeValueXMLSpreadsheet. Vous pouvez utiliser une feuille de style pour transformer le XMLSS en code XML quelconque pouvant être utilisé par une autre application. L'une des utilisations possibles consiste à transformer le XMLSS en XML personnalisé pouvant être publié et traité par une application Web. Pour obtenir un exemple de cette technique, reportez-vous à l'article suivant de la Base de connaissances Microsoft :278976
(http://support.microsoft.com/kb/278976/
)
Comment faire pour utiliser XSL pour transformer un fichier XML Spreadsheet Excel pour une utilisation du côté serveur
Références
Pour plus d'informations, consultez les sites Web suivants :
World Wide Web Consortium (W3C) (en anglais) http://www.w3.org (http://www.w3.org) Introduction XML http://www.microsoft.com/france/msdn/technologies/technos/xml/info/introxml.html (http://www.microsoft.com/france/msdn/technologies/technos/xml/info/introxml.html) Didacticiel XML http://msdn.microsoft.com/xml/c-frame.htm?/xml/tutorial/default.asp (http://msdn.microsoft.com/xml/c-frame.htm?/xml/tutorial/default.asp) Guide du développeur XSLT (en anglais) http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/6b8e4b12-f090-49e5-a2e4-b8fb913ac320.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/6b8e4b12-f090-49e5-a2e4-b8fb913ac320.asp) Guide du développeur XML http://msdn.microsoft.com/library/en-us/xmlsdk/htm/xml_devgd_overview_91b9.asp (http://msdn.microsoft.com/library/en-us/xmlsdk/htm/xml_devgd_overview_91b9.asp) Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Autres ressources Autres sites d'aide
CommunautésObtenir de l'aideTraductions disponibles
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
Retour au début
