IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

[Excel] Retour a la ligne cellule Excel


Sujet :

XML/XSL et SOAP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut [Excel] Retour a la ligne cellule Excel
    Bonjour a tous,

    Tout d'abord, excusez-moi pour les accents, je suis en Angleterre en ce moment... Je vous adresse mon probleme apres avoir beaucoup cherche auparavant.

    Je realise actuellement des transformations XSLT dont le but est de generer un fichier Excel a partir d'un document XML. Dans l'output Excel, j'aimerai faire un retour a la ligne au niveau d'une cellule.

    Lorsque l'on utilise directement Excel, cela revient a utiliser le raccourci clavier Alt+Entree au niveau d'une cellule. Si l'on ouvre le document Excel ainsi genere via un editeur de texte, on note l'emploi du caractere special et#10; : (j'emploie la syntaxe "et" pour que cela ne soit pas interprete par le navigateur, il s'agit en realite du caractere et commercial)

    <Data ss:Type="String">Mon et#10;Titre</Data>

    Ceci produit bien une cellule de ce type :

    |-----------------|
    |Mon |
    |Titre |
    |-----------------|

    Le probleme vient lorsque je souhaite inserer ces caracteres speciaux au niveau de la XSL pour generer un document Excel :

    <Cell ss:StyleID="s2"><Data ss:Type="String">Mon et#10;Titre</Data></Cell>

    Ce code va etre en effet directement interprete par le XSL pour faire un retour a la ligne non pas au niveau de la cellule du fichier Excel, mais au niveau du code source du fichier XML :

    <Data ss:Type="String">Mon
    Titre</Data>

    Lorsque ce code est interprete par Excel, bien evidemment, il n'y aura aucun retour a la ligne.

    Ma question est donc simple :

    Est-il possible de faire un retour a la ligne dans une cellule Excel a partir de XSLT ? (ce qui revient a pouvoir inserer un et#10; au niveau du fichier Excel sans qu'il ne soit interprete)

    Merci pour vos reponses, nombreuses je l'espere.

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Avez-vous essayé de faire d'abord quelque chose comme &amp;#10; de manière à générer le caractère & séparément ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par alain.couthures
    Avez-vous essayé de faire d'abord quelque chose comme &amp;#10; de manière à générer le caractère & séparément ?
    Bonjour,

    Bien entendu, j'ai realise ce que vous me preconisez avant de vous solliciter. Cela a pour resultat de generer un fichier Excel avec le code suivant :

    <Data ss:Type="String">Mon &amp;#10;Titre</Data>

    Ce code, une fois interprete par Excel me donne une cellule du type :

    Mon et#10; titre

    Si l'on procede de cette facon, Excel va interpreter une premiere fois le &amp; pour le transformer en et commercial. Cependant, il ne fera pas une re-interpretation pour transformer le et#10; en retour ligne.

  4. #4
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Vous voulez dire que vous avez essayé quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:text>&amp;#10;</xsl:text>
    ?

    Je ne vois pas bien quel est le format de votre document en entrée... On peut avoir un exemple significatif ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Voci un extrait de mon fichier XSL. Peut importe l'entree XML, ici je ne fais que definir les titres de mes colonnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <Row ss:Height="30">
    		<Cell ss:StyleID="s1"><Data ss:Type="String">Name</Data></Cell>
    		<Cell ss:StyleID="s1"><Data ss:Type="String">Ticker</Data></Cell>
    		<Cell ss:StyleID="s1"><Data ss:Type="String">ISIN</Data></Cell>
    		<Cell ss:StyleID="s2"><Data ss:Type="String">Nr</Data></Cell>
    		<Cell ss:StyleID="s2"><Data ss:Type="String">Total &amp;#10; Purchased Value</Data></Cell>				
    </Row>

  6. #6
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Ouh là oui... Effectivement, le problème n'est pas si évident.

    Il y aurait peut-être une piste par le biais d'une entité mais je n'hésiterais pas à faire une substitution sur la chaine de caractère résultant de la transformation pour introduire ce & #10; peu orthodoxe.

    La transformation est effectuée par programme j'espère, parce que si c'était sur navigateur, on ne pourrait pas intervenir...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par alain.couthures
    La transformation est effectuée par programme j'espère, parce que si c'était sur navigateur, on ne pourrait pas intervenir...
    Oui par un programme mais je n'ai pas la possibilite de toucher au code source.

    En d'autres termes tout se passe comme-ci la transformation etait executee par navigateur.

    Citation Envoyé par alain.couthures
    Effectivement, le problème n'est pas si évident.
    En effet, et je trouve ca deplorable. Revenir a la ligne est-il quelque chose de si exotique ?

  8. #8
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Revenir à la ligne n'a pas de sens en XML et il est regrettable que M$ l'ait pour autant utilisé dans ExcelML. Il aurait mieux valu définir une balise telle que <br/> !

    Cela devrait marcher avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:text disable-output-escaping="yes">&amp;#10;</xsl:text>

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par alain.couthures
    Cela devrait marcher avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:text disable-output-escaping="yes">&amp;#10;</xsl:text>
    Si vous entendez par cela, un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Cell ss:StyleID="s2"><Data disable-output-escaping="yes" ss:Type="String">Total &amp;#10; Purchased Value</Data></Cell>
    Cela n'a pas d'effet au niveau d'Excel. Cela produit un code ExcelXML de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Data ss:Type="String" disable-output-escaping="yes">Total &amp;#10; Purchased Value</Data>
    La cellule n'a pas change d'apparence avec cet attribut. La voici :

    Total & #10; Purchased Value

  10. #10
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Non, ce qu'il faut essayer c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Cell ss:StyleID="s2"><Data ss:Type="String">Total<xsl:text disable-output-escaping="yes">&amp;#10;</xsl:text>Purchased Value</Data></Cell>
    Il est normal que l'attribut disable-output-escaping n'est pas d'effet sur Excel, c'est un attribut à utiliser pendant la transformation !

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Desole pour le post precedent, j'aurais du reflechir davantage.

    Pour ce que vous m'avez conseille, je n'ai qu'une chose a dire : BRILLANT !

    Pour ceux qui auront le meme probleme, il faut de surcroit ajouter au niveau de l'alignement dans les styles l'attributs WrapText comme suit sinon vous aurez droit a un joli "carre blanc":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Alignment ss:Horizontal="Right" ss:Vertical="Center" ss:WrapText="1"/>
    Merci a M$ pour permettre de realiser cela de maniere si simple

    Plus serieusement, merci beaucoup pour votre aide. Le probleme est desormais RESOLU grace a vous.

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Merci, ça m'a permis de gagné du temps (google est ton ami si tu sais poser la bonne question).

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Points : 55
    Points
    55
    Par défaut
    De même pour moi, vous me faites gagner un temps précieux !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code ASCII du retour à la ligne dans une cellule Excel
    Par soumou dans le forum Assembleur
    Réponses: 9
    Dernier message: 26/12/2017, 19h26
  2. saut de ligne cellule excel
    Par jeepibmx dans le forum VB.NET
    Réponses: 5
    Dernier message: 21/03/2008, 18h12
  3. Réponses: 2
    Dernier message: 28/08/2006, 11h17
  4. Importer des retour à la ligne depuis Excel
    Par liop49 dans le forum Access
    Réponses: 15
    Dernier message: 11/07/2006, 14h29
  5. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo