Foros del Web » Programando para Internet » PHP »

Leer celda activas en excel

Estas en el tema de Leer celda activas en excel en el foro de PHP en Foros del Web. Estimados: Tengo una planilla excel con un listado de persona en los cuales la fila A mantiene un numero y el B el nombre de ...
  #1 (permalink)  
Antiguo 21/06/2012, 11:16
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 10 meses
Puntos: 0
Leer celda activas en excel

Estimados:

Tengo una planilla excel con un listado de persona en los cuales la fila A mantiene un numero y el B el nombre de las personas.
A B
1 jose
2 pedro


Resulta que hago la lectura con el siguiente ciclo:
for ($r = 14; $r <= $highestRow; $r++)
{
$sx=utf8_decode($objPHPExcel->getActiveSheet()->getCell('A' . $r)->getValue());
$nm=utf8_decode($objPHPExcel->getActiveSheet()->getCell('B' . $r)->getValue());
}
Pero ocurre que me están enviando la planilla con mas numeros que nombres:
A B
1 jose
2 pedro
3
4

y el código me esta tomando 4 nombres con dos sin ningún nombre. Con $highestRow me toma toda la fila de forma lineal y como encuentra algo activo mas abajo sigue la lectura.
La pregunta es: Como validar que me tome solo la fila B y cuando no encuentre nada que se detenga? Es decir que haga lo mismo que $highestRow pero solo con la fila B.

Agradezco respuestas.
  #2 (permalink)  
Antiguo 21/06/2012, 11:24
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Leer celda activas en excel

Es un problema de lógica, y puedes hacer dos cosas:

1 leer todo y saltarte cuando haya nombres vacíos o
2 detenerte en cuanto encuentres un nombre vacío.

De la primer forma podrías leer en caso de que haya más nombres en filas posteriores, de la segunda forma no.

Código PHP:
Ver original
  1. for ($r = 14; $r <= $highestRow; $r++){
  2.    $sx=utf8_decode($objPHPExcel->getActiveSheet()->getCell('A' . $r)->getValue());
  3.    $nm=utf8_decode($objPHPExcel->getActiveSheet()->getCell('B' . $r)->getValue());
  4.    if(!empty($nm))
  5.       $nombres[$sx]=$nm;//suponiendo que guardas los nombres en un arreglo
  6. }

o bien
Código PHP:
Ver original
  1. for ($r = 14; $r <= $highestRow; $r++){
  2.    $sx=utf8_decode($objPHPExcel->getActiveSheet()->getCell('A' . $r)->getValue());
  3.    $nm=utf8_decode($objPHPExcel->getActiveSheet()->getCell('B' . $r)->getValue());
  4.    if(!empty($nm))
  5.       break;
  6. }
  #3 (permalink)  
Antiguo 21/06/2012, 16:26
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Leer celda activas en excel

Gracias ocp001a, tu ayuda fue fundamental, no realice lo mismo pero funcionó. Mil gracias.

Lo que realice fue:

if($nm == '')
break;

Entra al if cuando no tiene nombre la celda.

Gracias.

Etiquetas: celda, 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 11:21.