Foros del Web » Programando para Internet » PHP »

phpexcel capturar celda de fecha

Estas en el tema de phpexcel capturar celda de fecha en el foro de PHP en Foros del Web. Holas. estoy intentando pasar a una variable php el valor de una celda que leo con phpexcel, en la celda B4 de la hoja salida ...
  #1 (permalink)  
Antiguo 06/11/2012, 05:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 13 años, 7 meses
Puntos: 1
phpexcel capturar celda de fecha

Holas.
estoy intentando pasar a una variable php el valor de una celda que leo con phpexcel,
en la celda B4 de la hoja salida tengo puesto =transport!B11
porque en la hoja transport me suma unos dias a la fecha y en la hoja salida pongo la fecha nueva
pero si quiero leer y uso el codigo getCalculatedValue me da #VALUE!
y si pongo solo getCell me da la formula que tengo en la celda por ejemp. (=!B11).

mi codigo es:
$valor_dia_entrega=$objPHPExcel->getActiveSheet()->getCell("B4")->getCalculatedValue();

he probado tambien:
$valor_dia_entrega=$objPHPExcel->getActiveSheet()->getCell("B4")->getCalculatedValue();
$timestamp=PHPExcel_Shared_Date::ExcelToPHP($valor _dia_entrega);
$valor_dia_entrega=date("d-m-Y H:i:s",$timestamp);
y siempre me da la fecha del dia.

como podria recoger esta fecha y pasarla a php.
gracias.

Última edición por ciurix; 06/11/2012 a las 05:25
  #2 (permalink)  
Antiguo 06/11/2012, 06:54
 
Fecha de Ingreso: noviembre-2010
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 11
Respuesta: phpexcel capturar celda de fecha

el problema me parece es que en "B4" no hay ninguna formula para calcular, simplemente toma el valor de una celda de otra pagina. Entonces sería:

Código PHP:
$valor_dia_entrega=$objPHPExcel->getActiveSheet()->getCell("B4")->getValue(); 
  #3 (permalink)  
Antiguo 06/11/2012, 08:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: phpexcel capturar celda de fecha

Hola. veras ya he probado de las dos formas y ninguna me da la fecha en formato correcto.
en otras celdas que recojo más datos que son numericos o texto utilizo getValue ó getCalculatedValue y todo correcto incluso en estas celdas que recojo los datos todas tienen =transport!B4 ó =precios!B7 etc, en la hoja salida todas las celdas recogen datos de otras hojas y en esta celda que recojo una fecha de otra pagina con =transport!B11 no hay manera. o me da el valor con getValue =transport!B11, y si pongo getCalculatedValue me da #VALUE!.
No se que hacer. no salgo.
gracias.
  #4 (permalink)  
Antiguo 06/11/2012, 11:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 11
Respuesta: phpexcel capturar celda de fecha

bueno, tenes que convertir la fecha de Excel a PHP y lo haces de la siguiente manera:

Código PHP:
$valor_dia_entrega=$objPHPExcel->getActiveSheet()->getStyle('B4')->getNumberFormat()->setFormatCode('MM-DD-YY'); 
  #5 (permalink)  
Antiguo 06/11/2012, 11:46
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: phpexcel capturar celda de fecha

Hola. de nuevo.
he probado tu codigo y la web no carga . me da este error.
PHP Catchable fatal error: Object of class PHPExcel_Style_NumberFormat could not be converted to string in D:\

te comento que una celda que no tiene formula y solo introducida una fecha, cuando la leo para captar la variable uso
$entrada_dia_pedido=$objPHPExcel->getActiveSheet()->getCell("B4")->getCalculatedValue();
ó
$entrada_dia_pedido=$objPHPExcel->getActiveSheet()->getCell("B4")->getValue();
y no tengo problema veo la fecha correctamente.

el valor lo he de coger de una celda que en excel normal veo la fecha de salida correctamente pero en la celda hay formulas.
pues desde phpexcel no logro que de una celda que hay una formula para ver una fecha.

tambien he probado que de la celda del resultado que da una fecha pasarla a otra celda con la formula =texto(B6;"dd-mm-aa")
y en excel correcto pero cuando quiero capturar este valor desde phpexcel tambien me pasa lo mismo que si fuera las otras.

gracias.

Última edición por ciurix; 06/11/2012 a las 12:09
  #6 (permalink)  
Antiguo 06/11/2012, 18:21
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: phpexcel capturar celda de fecha

Mira creo que lo primeros es configurar esa celda con el formato deseado y luego extraerla con el formato.

Código PHP:
Ver original
  1. $objPHPExcel->getActiveSheet()->getStyle('E2')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DMYMINUS);
  2. echo $objPHPExcel->getActiveSheet()->getCell('E2')->getFormattedValue();

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
  #7 (permalink)  
Antiguo 07/11/2012, 03:50
 
Fecha de Ingreso: septiembre-2010
Mensajes: 37
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: phpexcel capturar celda de fecha

Hola de nuevo.Portalmana.
da el mismo resultado #VALUE!
nada no hay manera.
haz esta prueba.
en B1 escribes una fecha ejemp. 7/11/2012
en B2 introduces la formula =(B1+3)
tu veras en excel que la celda b2 te da 10/11/2012
pues el valor de esa celda en B2 no hay manera de coger esa fecha en phpexcel.


gracias.
  #8 (permalink)  
Antiguo 09/11/2012, 18:27
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: phpexcel capturar celda de fecha

Código PHP:
Ver original
  1. public function getDate($celda)
  2.     {
  3.         list($columna, $fila) = PHPExcel_Cell::coordinateFromString($celda);
  4.         $columna    = PHPExcel_Cell::columnIndexFromString($columna);
  5.         return PHPExcel_Style_NumberFormat::toFormattedString($this->_createObjWorksheet()->getCellByColumnAndRow($columna - 1, $fila)->getCalculatedValue(),'YYYY-MM-DD' );
  6.        
  7.     }

Utiliza esa funcion en la clase ExcelToArray o
sustituye
$this->_createObjWorksheet( por la hoja activa...
Lo probe y extrae la fecha.

Saludos
Disculpa pero no habia visto el mensaje
__________________
"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; 09/11/2012 a las 18:36

Etiquetas: celda, fecha, phpexcel, variables
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 20:49.