ALT + ENTREE en PHP pour Excel

ALT + ENTREE en PHP pour Excel - PHP - Programmation

Marsh Posté le 12-09-2007 à 16:02:55    

Bonjour tt le monde, j'espere que vous avez passe de bonnes vacances... :)
 
j'ai reussi a exporter des donnes de ma base de donnees vers Excel en utilisant PHP :
 
fputs("nom_fichier", "Valeur\t" );
fputs($my_file, "\n" ); // pour une nouvelle ligne
...
 
Je me casse la tete depuis ce matin pour inserer un retour a la ligne mais dans la meme cellule, equivalent de ALT + ENTREE mais je n'y arrive pas !!! :( auriez vous une idee svp?
 
Merci bien,
Reda

Reply

Marsh Posté le 12-09-2007 à 16:02:55   

Reply

Marsh Posté le 12-09-2007 à 17:49:21    

\r ?


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 12-09-2007 à 18:10:37    

non, \r et \n reviennent a une nouvelle ligne...
 
j'aimerais revenir a la ligne mais dans la meme cellule!!

Reply

Marsh Posté le 12-09-2007 à 18:37:26    

Salut,

 

Si on exporte en xml, on peut voir que le code suivant est utilisé en tant que retour à la ligne:


J'espère que ça marchera dans ton cas.


Message édité par IrmatDen le 12-09-2007 à 18:37:43
Reply

Marsh Posté le 12-09-2007 à 18:43:12    

Bonjour, et merci pour vos reponses!!!
 
je viens de tester 
 mais ca ne marche pas, peux etre que je ne l'utilise pas de la bonne maniere!!! : fputs("nom_fichier", "Valeur1ereLigne
Valeur2emeLigne\t" );

Reply

Marsh Posté le 12-09-2007 à 18:44:46    

ou est ce que ma page devrait etre en xml???

Reply

Marsh Posté le 12-09-2007 à 18:51:50    

Tu sauvegardes dans quel format?

Reply

Marsh Posté le 12-09-2007 à 19:09:35    

Pour préciser un peu plus, il faut que la cellule où tu veux ce format ait un style possédant l'attribut WrapText.
En XML, ça donne ça:

Code :
  1. <Style ss:ID="s62">
  2.   <Alignment ss:Vertical="Bottom" ss:WrapText="1"/>
  3.  </Style>
  4. [snip...]
  5.   <Row ss:AutoFitHeight="0">
  6.    <Cell ss:StyleID="s62"><Data ss:Type="String">test&#10;rettest</Data></Cell>
  7.   </Row>

Reply

Marsh Posté le 12-09-2007 à 19:12:29    

redah75 a écrit :

Bonjour, et merci pour vos reponses!!!
 
je viens de tester &#10; mais ca ne marche pas, peux etre que je ne l'utilise pas de la bonne maniere!!! : fputs("nom_fichier", "Valeur1ereLigne&#10;Valeur2emeLigne\t" );


fputs("nom_fichier", "Valeur1ereLigne\x10Valeur2emeLigne\t" );
 
?


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 13-09-2007 à 11:28:02    

Bonjour et encore merci pour vos reponses,
 
IrmatDen: je sauvegarde au format xls et ma page qui genere le fichier xls est purement en HTML ET PHP, je ne connais rien en xml :(
je ne vois pas trop comment je peux utiliser le bout de code css que tu m'as donne!!
 
WiiDS: j'ai essaye \x10 mais ca donne rien, il m'insere un caracter bizarre au lieu du saut de ligne... :( g egalement essaye \c13, en vain!

Reply

Marsh Posté le 13-09-2007 à 11:28:02   

Reply

Marsh Posté le 13-09-2007 à 11:28:26    

\x13, pas c13, desole :D

Reply

Marsh Posté le 13-09-2007 à 13:04:10    

:hello:  !

 

J'avais aussi ce problème pour générer un fichier .csv avec des cellules sur plusieurs lignes.

 

En fouillant sur Internet, j'ai trouvé la solution ^^

 

Pour créer une cellule sur plusieurs lignes, il faut tout simplement encadrer le texte de ta cellule par des guillemets ", et utiliser \n pour sauter une ligne.

 

J'espère que ça fonctionne de la même manière pour un fichier .xls  :??:

 

:jap:


Message édité par Soileh le 13-09-2007 à 14:03:20
Reply

Marsh Posté le 13-09-2007 à 13:29:47    

Il te faut autant de \t que de colonnes à sauter avant d'arriver à celle que tu veux.


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 13-09-2007 à 13:43:06    

redah75 a écrit :

WiiDS: j'ai essaye \x10 mais ca donne rien, il m'insere un caracter bizarre au lieu du saut de ligne


Le caractère bizarre est lié au problème de style que j'ai évoqué rapidement plus haut. Il ne te reste plus qu'à voir comment sont gérés les styles avec l'api que tu utilises :)

Reply

Marsh Posté le 13-09-2007 à 13:44:48    

eh non, les \n passent a une nouvelle ligne :(
 
c'est pas grave, je laisse tomber...
 
Merci infiniment a tous

Reply

Marsh Posté le 13-09-2007 à 13:46:46    

je ne vois pas comment je peux incorporer des styles avec des fputs("nom_fichier", "Valeur1ereLigne\t" );
je voulaisegalement mettre du gras par exemple mais je pense que c pas possible!!

Reply

Marsh Posté le 13-09-2007 à 14:03:57    

Chez moi, le code suivant :

 

fwrite( $handle, "\"Beaucoup de texte\nEncore du texte\nLa fin du texte\"" );

 

fonctionne, je comprends pas là  :??:


Message édité par Soileh le 13-09-2007 à 14:04:24
Reply

Marsh Posté le 13-09-2007 à 15:14:40    

ah ouiiiii, la ca marche, merci bp :)
j'en profite juste pour poser une derniere question: est ce possible de mettre du gras ou italique???
 
merci merci merci mille fois ;)

Reply

Marsh Posté le 13-09-2007 à 16:15:07    

oh lala, je suis desole de vous embeter encore une fois, la methode que tu m'as donnee Soileh marche bien, mais j'arrive pas a l'adapter a mon cas!!
 
le texte que j'insere est une valeur dynamique:
fwrite( $handle, $val);
 
si je fais:
$val = "\"mon texte 1\"";
$val .= "\"\nmon texte 2\"";
 
ca ne marche pas, vois tu pk??

Reply

Marsh Posté le 13-09-2007 à 16:27:53    

Les guillemets doivent entourer l'ensemble du contenu de la cellule et non chaque ligne.

Reply

Marsh Posté le 13-09-2007 à 16:34:59    

Pour le coup de la mise en gras, non, c'est pas possible en csv. Le csv est un fichier texte sans mise en forme.

Reply

Marsh Posté le 13-09-2007 à 16:39:26    

ok cool, j'ai reussi ;)
merci bp a tous

Reply

Marsh Posté le 24-07-2008 à 14:21:59    

Salut,
 
Une solution toute simple en HTML:
 
faire une table tout ce qu'il y a de plus table HTML, utiliser les BR pour les retours à la ligne et dans les styles définir que les BR se font dans la même cellule:
 
br {
 mso-data-placement:same-cell;
}
 
 
Exemple de fichier HTML:
 

Citation :

<html>
<head>
<style>
 br {mso-data-placement:same-cell;}
</style>
</head>
<body >
<table>
<tr>
<td>Colonne1</td>
<td>ici</td>
<td>
 Ligne 1<br />
 Ligne 2<br />
 blabla<br />
 blabla aussi<br />
</td>
</tr>  
</table>
</body >
</html>


 
A +
Guillaume

Reply

Marsh Posté le 07-08-2008 à 11:34:03    

Ah ouaiiiis, ca c'est cool et en plus trop simple... :) je ne savais pas qu'une page html pouvais faire l'affaire!!
 
Je te remercie beaucoup Guillaume ;)
 
@+

Reply

Marsh Posté le 10-08-2008 à 03:07:32    

déterrage d'un peu plus d'un an :sarcastic:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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