Création worksheet via template - XML/XSL - Programmation
MarshPosté le 05-11-2010 à 09:29:45
Bonjour à tous,
Mon problème est simple pourtant je ne pense pas détenir les connaissances basiques pour le résoudre.
Je détiens un fichier Xml qui subit la transformation d'un fichier Xsl (spécifique) qui inclut un second Xsl (commun) pour produire un xls.
XML ----> 2 fichiers XSL -----> XLS
Sachant que je détiens plusieurs Xml j'ai autant de Xsl spécifique. Je voulais rendre commune une opération de création d'onglet qui apparaît comme besoin pour quelques Xml.
En outre dans mon Xsl spécifique, j'avais la requête <Worsheet ............ J'ai simplement créer un template dans mon Xsl commun qui contenait le même code, puis dans mon spécifique j'ai call ce template.
Le fichier xls se génère bien, néanmoins l'onglet n’apparaît plus ( le fameux worksheet) , comme si call un template ne comprenant qu'une commande <Worsheet.... ne fonctionnait pas.
Dans ma XSL Spécifique :
Code :
<xsl:call-template name="PartRefWorksheet"/>
Dans ma XSL Commune :
Code :
<xsl:template name="PartRefWorksheet">
<!-- Onglet Part References -->
<Worksheet ss:Name="Part References"> <!-- references des composants utilises -->
<Names>
<NamedRange ss:Name="Print_Titles" ss:RefersTo="='Part References'!R1"/> <!-- Nombre de ligne à répéter en tête de fichier -->
</Names>
<Table>
<Column ss:AutoFitWidth="0" ss:Width="50"/> <!-- Famille -->
J'ai bien le lien qui inclut ma commune dans ma spec. Je n'ai pas d'onglet "Part References" qui s'inclut dans mon fichier excel, alors qu'au départ, en passant uniquement avec le specifique, il existait bel et bien en sortie.
J'ai bien essayé avec des xsl:apply-template match/call mais ça ne fonctionne toujours pas.
La transformation s'effectue bien sur le xsl specifique, qui inclut l'xsl commun. Mais l'onglet concernant cette commande worsheet n'est pas créé au contraire des autres, eux contenu en dur dans le xsl spécifique.
j'espere avoir été assez clair, j'ai vainement recherché partout mais je ne trouve pas de solution, je me demande si ce n'est pas impossible tout simplement.
Marsh Posté le 05-11-2010 à 09:29:45
Bonjour à tous,
Mon problème est simple pourtant je ne pense pas détenir les connaissances basiques pour le résoudre.
Je détiens un fichier Xml qui subit la transformation d'un fichier Xsl (spécifique) qui inclut un second Xsl (commun) pour produire un xls.
XML ----> 2 fichiers XSL -----> XLS
Sachant que je détiens plusieurs Xml j'ai autant de Xsl spécifique. Je voulais rendre commune une opération de création d'onglet qui apparaît comme besoin pour quelques Xml.
En outre dans mon Xsl spécifique, j'avais la requête <Worsheet ............
J'ai simplement créer un template dans mon Xsl commun qui contenait le même code, puis dans mon spécifique j'ai call ce template.
Le fichier xls se génère bien, néanmoins l'onglet n’apparaît plus ( le fameux worksheet) , comme si call un template ne comprenant qu'une commande <Worsheet.... ne fonctionnait pas.
Dans ma XSL Spécifique :
Dans ma XSL Commune :
J'ai bien le lien qui inclut ma commune dans ma spec.
Je n'ai pas d'onglet "Part References" qui s'inclut dans mon fichier excel, alors qu'au départ, en passant uniquement avec le specifique, il existait bel et bien en sortie.
J'ai bien essayé avec des xsl:apply-template match/call mais ça ne fonctionne toujours pas.
La transformation s'effectue bien sur le xsl specifique, qui inclut l'xsl commun.
Mais l'onglet concernant cette commande worsheet n'est pas créé au contraire des autres, eux contenu en dur dans le xsl spécifique.
j'espere avoir été assez clair, j'ai vainement recherché partout mais je ne trouve pas de solution, je me demande si ce n'est pas impossible tout simplement.
Merci à tous !
Bonne journée