Foros del Web » Programando para Internet » PHP »

Modificar un fragmento de archivo de excel desde php

Estas en el tema de Modificar un fragmento de archivo de excel desde php en el foro de PHP en Foros del Web. Hola a todos! Nuevamente por aquí molestándolos con un poco de ayuda. Mi objetivo: Mediante PHP requiero abrir un archivo de excel para buscar dentro ...
  #1 (permalink)  
Antiguo 12/04/2012, 12:19
Avatar de Pablo Ayala  
Fecha de Ingreso: septiembre-2005
Ubicación: Cancún, México
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 28
Pregunta Modificar un fragmento de archivo de excel desde php

Hola a todos!

Nuevamente por aquí molestándolos con un poco de ayuda.

Mi objetivo:
Mediante PHP requiero abrir un archivo de excel para buscar dentro de él la siguiente cadena [**ORDEN**] y reemplazarla por un número de orden, por ejemplo: "TTR45874".

Mi código:
Código PHP:
header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=archivo.xls");
header("Pragma: no-cache");
header("Expires: 0");
$file file_get_contents("archivo.xls");
$archivo_nuevo str_replace('[**ORDEN**]''TTR45874'$file);
echo 
$archivo_nuevo
Interesante:
Usando el codigo anterior me marca un error en el archivo de excel que se genera, sin embargo si sustituyo [**ORDEN**] por una cadena con el mismo número de caracteres funciona de maravilla...

La pregunta:
¿Alguna idea de como solucionarlo? o bien, ¿Otro método para sustituir esa cadena?

Saludos y desde ya, muchas gracias por su ayuda!
__________________
Atentamente,

Pablo Ayala.
Si vas a responder algo en el foro que sea con amabilidad.
  #2 (permalink)  
Antiguo 12/04/2012, 12:25
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Modificar un fragmento de archivo de excel desde php

Comprueba el manual pero creo que para un archivo xls deberías mejor usar fopen() la opción 'b': http://de3.php.net/manual/es/function.fopen.php
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 12/04/2012, 13:43
Avatar de Pablo Ayala  
Fecha de Ingreso: septiembre-2005
Ubicación: Cancún, México
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 28
Respuesta: Modificar un fragmento de archivo de excel desde php

hola repara2... muchas, gracias...
Ya probe y me pasa lo mismo...

Forzosamente debo reemplazar la cadena que deseo por la misma cantidad de caracteres para que no salga un error.... :(
__________________
Atentamente,

Pablo Ayala.
Si vas a responder algo en el foro que sea con amabilidad.
  #4 (permalink)  
Antiguo 12/04/2012, 14:44
Avatar de Pablo Ayala  
Fecha de Ingreso: septiembre-2005
Ubicación: Cancún, México
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 28
Respuesta: Modificar un fragmento de archivo de excel desde php

Finalmente tuve que hacer lo siguiente:

Código PHP:
Ver original
  1. $ordenold = "[**NUMERO_OR**]";
  2. $orden = "TN12041150";
  3. $file = file_get_contents("archivo.xls");
  4. $archivo_nuevo = str_replace($ordenold, reemplaza($ordenold, $orden), $file);
  5. $fp = fopen("ejemplo.xls", "wr");              
  6. fputs($fp, $archivo_nuevo);
  7. fclose($fp);
  8. f
  9. unction reemplaza($que, $porque){
  10.     $contadora = strlen($que);
  11.     $contadorb = strlen($porque);  
  12.     $resta = $contadora - $contadorb;
  13.     $espacios = '';
  14.     for ($i=1; $i<= $resta; $i++){
  15.         $espacios .= " ";
  16.     }
  17.     $cadena = $porque."".$espacios;
  18.     return $cadena;
  19. }

Y ya logre cambiar todas las cadenas necesarias!

Muchas gracias!
__________________
Atentamente,

Pablo Ayala.
Si vas a responder algo en el foro que sea con amabilidad.
  #5 (permalink)  
Antiguo 12/04/2012, 14:46
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Modificar un fragmento de archivo de excel desde php

Es obvio que falle, el formato excel no es un simple archivo de texto. Para lo que quieres, sería mejor editar el excel, esto lo puedes hacer con la librería phpexcel de codeplex. No será tan trivial (sencillo) como el str_replace, pero funcionará y podrás hacer más cosas.

Etiquetas: excel;
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:27.