Cita:
Iniciado por javimartinez Por cierto, sobre mi pregunta original sigo sin encontrar nada :( El caso es que ni cogiendo un fichero excel como txt y copiando y pegando el caracter de salto de línea luego me funciona :( ¿Se os ocurre alguna idea?
Hola, javimartinez:
Tras dar muchas vueltas con este mismo tema y volverme loco (como con otros muchos), he decidido darme de alta en esto de forosdelweb (que consulto a menudo como usuario no registrado) para poder participar. Que el trabajo de uno sirva para los demás, así que, eres mi primer mensaje aquí
Yo he tenido el mismo problema. No funciona \r, \n, \r\n... ni ningún tipo de combinación parecida. Del mismo modo, como tú comentas, al poner <BR>, interpreta un salto real (un intro en excel) y salta a la celda inferior. La única solución que he encontrado después de probar muchas que encontraba en google o en foros del web, fue tratar de pensar como el excel y decirle qué queremos poner y cómo. Por eso, transformamos la celda en una función de excel, para que la escriba tal cual. Te doy un ejemplo:
Texto1("aquí iría el carácter de escape")Texto2;
Si metemos el valor en un TH, por ejemplo:
echo "<TH>Texto1("aquí iría el carácter de escape")Texto2</TH>";
Formateando una celda, quedaría algo así:
Te ha pasado como a mí, que te has enredado sólo buscando el carácter de escape. Cuando haces una función en excel, le pones delante el igual y encierras el contenido entre comillas. Pero falta el inicio y el fin del texto (para transformarlo a fórmula). Quedaría algo así (lo pongo concatenado para mayor claridad):
echo "=\"" . "<TH>Texto1" . "\r\n" . "Texto2</TH>" . "\"";
Para complicarlo un poco más, puedes formater en función de si quieres que lo exporte a excel o que lo presente por pantalla con el formato adecuado. En ese caso, si tenemos una variable que nos indica si es excel o no (por ejemplo, al recibir una variable de salida que diga si es pantalla o excel), podría quedar algo así
$esexcel=$_POST["salida"]=="excel";
echo ".......... " //la estructura de la tabla
echo ($esexcel?"=\"":"")."<TH>Texto1".($esexcel?"\r\n": "<BR>")."Texto2</TH>".($esexcel?"\"":"");
Espero que te ayude.
Saludos