Création worksheet via template

Création worksheet via template - XML/XSL - Programmation

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 :

Code :
  1. <xsl:call-template name="PartRefWorksheet"/>


 
Dans ma XSL Commune :

Code :
  1. <xsl:template name="PartRefWorksheet">
  2.   <!-- Onglet Part References -->
  3.  <Worksheet ss:Name="Part References">   <!-- references des composants utilises -->
  4.   <Names>
  5.     <NamedRange ss:Name="Print_Titles" ss:RefersTo="='Part References'!R1"/> <!-- Nombre de ligne à répéter en tête de fichier -->
  6.    </Names>
  7.    <Table>
  8.    <Column ss:AutoFitWidth="0" ss:Width="50"/>  <!-- Famille   -->
  9.     <Column ss:AutoFitWidth="0" ss:Width="55"/>  <!-- PartNumber   -->
  10.    <Column ss:AutoFitWidth="0" ss:Width="230"/> <!-- PartName   -->
  11.    <Column ss:AutoFitWidth="0" ss:Width="170"/> <!-- PackName   -->
  12.    <Column ss:AutoFitWidth="0" ss:Width="30"/>  <!-- ACL    -->
  13.    <Column ss:AutoFitWidth="0" ss:Width="45"/>  <!-- Date validation TS -->
  14.    <Column ss:AutoFitWidth="0" ss:Width="70"/>  <!-- Commentaire TS  -->
  15.    <Column ss:AutoFitWidth="0" ss:Width="45"/>  <!-- Status Complete    -->
  16.    <Column ss:AutoFitWidth="0" ss:Width="38"/>  <!-- Status Inhibited   -->
  17.    <Column ss:AutoFitWidth="0" ss:Width="38"/>  <!-- Warning            -->
  18.    <Column ss:AutoFitWidth="0" ss:Width="50"/>  <!-- Part status        -->
  19.    <xsl:call-template name="partRef_Phys"/>
  20.   </Table>
  21.   <AutoFilter x:Range="R1C1:R1C4" xmlns="urn:schemas-microsoft-com:office:excel"></AutoFilter>
  22.   <xsl:call-template name="WorksheetOptionsExcel2002">
  23.    <xsl:with-param name="Hpane" select="1"/>
  24.   </xsl:call-template>
  25.  </Worksheet>
  26. </xsl:template>


 
 
 
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
 

Reply

Marsh Posté le 05-11-2010 à 09:29:45   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed