Foros del Web » Programando para Internet » PHP »

phpexcel me da error

Estas en el tema de phpexcel me da error en el foro de PHP en Foros del Web. Holas. haber si podeis ayudarme. tengo esta linea de codigo en mi fichero php sacado de es mismo foro para trabajar con ficheros excel y ...
  #1 (permalink)  
Antiguo 25/10/2012, 11:19
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
phpexcel me da error

Holas. haber si podeis ayudarme.
tengo esta linea de codigo en mi fichero php
sacado de es mismo foro para trabajar con ficheros excel y copio esta linea

// Camino a los include
set_include_path(get_include_path().PATH_SEPARATOR .‘../Classes/’);

y el navegador me da error
PHP Parse error: syntax error, unexpected '.' in .... line 3

que esta mal escrito??
gracias.
  #2 (permalink)  
Antiguo 25/10/2012, 11:30
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 9 meses
Puntos: 155
Respuesta: phpexcel me da error

imprime esta linea a ver que ruta te da y si coincide con la ruta a la que quieres llegar


Código PHP:
Ver original
  1. <?php
  2. echo get_include_path().PATH_SEPARATOR ."../Classes/";
  3. ?>
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #3 (permalink)  
Antiguo 25/10/2012, 11:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: phpexcel me da error

Imagino que copiaste y pegaste el código, ya que aparentemente las comillas no son las correctas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 25/10/2012, 14:04
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Holas. Pues teneis razón era cuestión de comillas. efectivamente en el post que mire la consulta estaba el codigo entero de como hacerlo.
El tema es que ahora sigue pero me da el siguiente error,

PHP Fatal error:Class 'ZipArchive' not found in D:\..PHPExcel\Reader\Excel2007.php on line 497.

y en la linea 497 del fichero esta tal cual viene en phpexcel version 1.7.8
497 $zip = new ZipArchive;
498 $zip->open($pFilename);

sabeis a que se debe este error?

Necesito poder grabar un valor en una celda del fichero excel para que este de unos resultados en otra celda y luego leerlo.

Gracias.
  #5 (permalink)  
Antiguo 25/10/2012, 14:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: phpexcel me da error

Bien, no hay error simplemente no tienes presente la extensión Zip en tu instalación de PHP.

Te invito a descubrir el traductor de Google para que entiendas lo que te dicen los mensajes de error.

PDTA: si no sabes cómo instalar una extensión de php, o no sabes como funciona alguna clase o función deberías consultar el manual oficial de php.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 25/10/2012, 15:34
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Hola. según comentas es por la instalación. pues al ser en hosting he tenido que pedirlo pues desde el panel de control no esta la opcion de configurarlo.
voy a probarlo en local.
Lo que no entiendo es que si para leer el fichero no he tenido error
porque para escribir si.
la extension del fichero excel es xls. puedo utilizar la clase excel5 en vez de excel2007 para leer y escribir.
gracias.
  #7 (permalink)  
Antiguo 25/10/2012, 15:44
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

Efectivamente si utilizas ficheros antiguos de Excel o sea los xls, no es necesario tener la extencion php_zip activada/instalada.
Si vas a usar los xlsx si, pues estos se guardan zipeados.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #8 (permalink)  
Antiguo 25/10/2012, 15:58
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Hola.
En local he marcado la extension phpZip de configuracion y me da error que no puede encontrar el modulo especificado. Instalé el programa Wamp y hasta ahora todo me va bien y nunca habia necesitado esta configuración. quiere decir que no tengo todo el paquete instalado??
Php Starup: Unable to load dynamic library c:/wamp/bin/php/php5.3/ext/php_zip.dll

gracias.
  #9 (permalink)  
Antiguo 25/10/2012, 16:27
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

Haz un phpinfo y fijate si tiene estas dos extenciones.
Código PHP:
Ver original
  1. echo phpinfo(INFO_ALL);



No me acuerdo si la segunda debe estar...
Pero la primera tendría que estar seguro...
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Última edición por portalmana; 25/10/2012 a las 16:38
  #10 (permalink)  
Antiguo 25/10/2012, 17:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Hola.
he probado phpinfo en el hosting y solo sale zlib .
pero en local tengo zip y zlip.
y esta enabled .
pero en la carpeta de instalacion no esta el fichero php_zip.dll

gracias
  #11 (permalink)  
Antiguo 25/10/2012, 17:20
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

y de ultima bájate la librería y tírala en el directorio de instalaciones reinicia el servidor haber si arranca.


Pues sin eso solo podras usar archivos xls.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #12 (permalink)  
Antiguo 26/10/2012, 03:50
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Hola. de nuevo.

gracias por ir siguiendo mi post.
te cuento. he bajado php_zip.dll versiones para php 5.2 de mi hosting y ver. 5.3 para localhost de mi pc. en el pc ahora cuando arranco el wamp me da error

PHP startup: Unable to load dynamic library c;/wamp/bin/php/php5.3.0/ext/php_zip.dll no se encontro el proceso especificado.

estando el fichero php_zip.dll copiado ahi.
???

en phpinfo de mi pc me dice que esta la extension leida zip y enabled.

si en localhost el fichero php de mi aplicación que ejecuta esto me da una cantidad de errores del fichero /PHPExcel/Reader/Excel2007.php a partir de la linea 428-431

Warning Zip Archive: GetFromName() ...........

no se que hacer pues necesito realizar este formulario y solo es grabar en una celda.

en mi hosting me dicen que ellos tienen la extension zlib. configurada para php
ademas corren con php 5.2


puedes ayudarme,
gracias.
  #13 (permalink)  
Antiguo 26/10/2012, 06:03
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

Mira yo no me molestaria tanto por el local, pues de hecho lo puedes solucionar ahi pero el problema va a ser el servidor.

Probaste con archivos xls.
http://objetivophp.com/?p=89 ahi hay un usuario que dice como soluciono el problema, se ve que a veces no queda del todo bien instalado.

Yo te dire que uso xampp y funciona.
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #14 (permalink)  
Antiguo 27/10/2012, 03:22
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Hola.
he bajado el DEAME3P instalado todo bien pero al ejecutarlo sale el menu y puedo seleccionar todas las obciones de este pero no hace nada ninguna opcion del menu hace nada.
en el post de donde baje el programa tenia una cantidad de comentarios diciendo que tenian problemas de configurarlo.
tu dices que con Xamp te funciona . pero que programa el DEAME3P??

como SI puedo escribir un nuevo fichero, ¿ como podria hacer una copia del que leo??(tiene cuatro hojas con muy pocos datos cada una.) en una coge los datos en otra da resultado en otra estan las formulas)
Puedo leer el fichero xls para hacer una copia y antes de grabar modifico las celdas que me interesen??

Gracias.
  #15 (permalink)  
Antiguo 27/10/2012, 07:22
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

Te mande a ese post porque había gente que tenia tu mismo problema del php_zip y comentaron como lo solucionaron.

Si se pueden realizar copias y generar uno nuevo pero tu quieres modificar sobre el existente o llenaras de archivos el servidor.


Saludos

Una consulta tienes PHP >= 5.2.0?
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Última edición por portalmana; 27/10/2012 a las 08:48
  #16 (permalink)  
Antiguo 27/10/2012, 09:18
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

Mira esto un ejemplo bien crudo de PHPExcel,
Estructura del sitio:

Raiz :
|-> phpexcel (dir)|->Classes(dir)
|->index.php (file)
|->libro.xlsx (file)

Ahora el Codigo:
Código PHP:
Ver original
  1. // Le damos un Camino hacia los include
  2. set_include_path(get_include_path() . PATH_SEPARATOR . './phpexcel/Classes/');
  3.  
  4. // PHPExcel
  5. require_once 'PHPExcel.php';
  6.  
  7. // PHPExcel_IOFactory
  8. include 'PHPExcel/IOFactory.php';
  9.  
  10. // Creamos un objeto PHPExcel
  11. // PHPExcel equivale a un Libro el cual contiene hojas.
  12. $objPHPExcel = new PHPExcel();
  13.  
  14. // Leemos un archivo Excel 2007 para 2003 o menor Excel5
  15. $objReader = PHPExcel_IOFactory::createReader('Excel2007');
  16. $objPHPExcel = $objReader->load('libro.xlsx');
  17.  
  18. // Indicamos que se pare en la hoja uno del libro
  19. // Lo podemos hacer por nombre o por indice.
  20. $objPHPExcel->setActiveSheetIndexByName('Hoja1'); // Por Nombre
  21. //$objPHPExcel->setActiveSheetIndex(0);             // Por Indice
  22.  
  23. // Escribimos en la hoja en la celda A2
  24. // Podremos traer la hoja y Guardarla en una Variable o Usarla siempre de este modo.
  25. $objPHPExcel->getActiveSheet()->SetCellValue('A2', 'Objetivo');
  26. // Aqui capturamos la hoja
  27. $hoja1  = $objPHPExcel->getActiveSheet();
  28. // Hacemos lo mismo que con la celda A2 Pero ahora de este modo en la celda B2
  29. $hoja1->SetCellValue('B2', 'PHP');
  30. $hoja1->setCellValue('C2', 'Montevideo-Uruguay');
  31. $hoja1->setCellValue('D2', 'objetivophp@*******.com');
  32.  
  33. //Guardamos el archivo en formato Excel 2007
  34. //Si queremos trabajar con Excel 2003, basta cambiar el 'Excel2007' por 'Excel5' y el nombre del archivo de salida cambiar su formato por '.xls'
  35. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
  36. // Como sobreescribiremos el Archivo
  37. $objWriter->save('libro.xlsx');

Lo que hace es abrir el archivo excel modificarlo y guardarlo en el mismo.
Siempre tienes que tener cuidado que el mismo ya no este en uso si no fallara al guardar, pero si cambias el nombre se genera un archivo nuevo.
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #17 (permalink)  
Antiguo 28/10/2012, 10:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Hola. He implantado tu ejemplo y llego al mismo resultado que con otros que ya habia probado.
sale el error.
PHP Fatal error: Class 'ZipArchive' not found in D:\XVRT\....\PHPExcel\Reader\Excel2007.php on line 497.
he vuelto a solicitar en mi hosting que activen en el php.ini la extension ZIP.
no entiendo como un hostinh no activa una cosa asi y te ponen tantos problemas.
he puesto estos ejemplos en otro hosting y tampoco rulan.
Crees que solo es problema del hosting. necesito poder decir al cliente de quien es la culpa.
gracias.
  #18 (permalink)  
Antiguo 28/10/2012, 10:14
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

Prueba con archivos xls anteriores o iguales a 2003, no deberían dar problemas pues no usan php_zip.
Lo único que el tipo pasa de ser Excel2007 a Excel5.

Código PHP:
Ver original
  1. // Leemos un archivo Excel 2007 para 2003 o menor Excel5
  2. $objReader = PHPExcel_IOFactory::createReader('Excel5');
  3. $objPHPExcel = $objReader->load('libro.xls');

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #19 (permalink)  
Antiguo 28/10/2012, 14:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Hola.
Muy agradecido.
Ha ido bien el cambio a excel5.
Por fin puedo grabar en la hoja. pero por mas que intento controlar el indice activo, me da errores.
grabo en la hoja uno, que tiene un nombre(entrada). cuando quiero leer el resultado que esta es la hoja 2 que tiene nombre(salida). no hay manera. solo lee la primera hoja. este es el codigo que pongo para activar la hoja.

$objExcel->setActiveSheetIndex(1); para ir a la hoja 2(salida)
$resultado=(objExcel->getValueCellFromExcel('B2'));

cual el el codigo para activar la hoja 2 (¿puede ser por nombre de la hoja?).
gracias
  #20 (permalink)  
Antiguo 28/10/2012, 14:07
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

Prueba traerla por el nombre
Código PHP:
Ver original
  1. $objPHPExcel->setActiveSheetIndexByName('salida');
  2. $valor_celda=$objPHPExcel->getActiveSheet()->getCell("A1")->getValue(); //  o getCalculatedValue()
Ojo con mayúsculas y minúsculas.
Otra cosa es que estas entreverando codigo de PHPExcel con el de la clase que te habia proporcionado.
$resultado=(objExcel->getValueCellFromExcel('B2')); esta linea no es de PHPEXCEL

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Última edición por portalmana; 28/10/2012 a las 14:14
  #21 (permalink)  
Antiguo 28/10/2012, 15:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Hola. Estupendo. ahora si. gracias por tu atencion.
pero sorpresa. cuando lee las celdas en vez de ver el resultado me da el calculo que hay escrito en la celda.
Osea en hoja2(salida) B12 es el valor de hoja3(precios) celda b18 .
pues cuando lee en hoja2(salida) la celda b12 no sale el valor
la variable que me da es =B18precios.

claro en la hoja de excel si que se ve el valor real.
no puede darme el valor calculado??? como se ve en el excel.
gracias.
  #22 (permalink)  
Antiguo 28/10/2012, 16:06
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

Si es lo que te puse comentado // en el comentario anterior.
Código PHP:
Ver original
  1. $valor_celda=$objPHPExcel->getActiveSheet()->getCell("A1")->getValue(); //  o getCalculatedValue()
  2. // O sea
  3. $valor_celda=$objPHPExcel->getActiveSheet()->getCell("A1")->getCalculatedValue();
Depende de como sea la hoja porque generalmente no tienen calculos entonces va mas rapido el getValue,
si necesitamos calcular el campo antes usamos getCalculatedValue();

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #23 (permalink)  
Antiguo 28/10/2012, 16:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: phpexcel me da error

Hola. Siii señooor. Ya esta todo. arreglado.
Agradezco un monton tu seguimiento. Ahora puedo seguir con el proyecto.
gracias.
  #24 (permalink)  
Antiguo 28/10/2012, 16:31
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: phpexcel me da error

Éxitos con tu proyecto.
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Etiquetas: phpexcel
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 14:09.