Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Pintar registros en phpExcel

Estas en el tema de Pintar registros en phpExcel en el foro de PHP en Foros del Web. Que tal amigos del foro, les mando un gran saludo y espero me puedan ayudar en un problema: quiero pintar unos registros en un archivo ...
  #1 (permalink)  
Antiguo 10/07/2013, 15:13
 
Fecha de Ingreso: marzo-2012
Mensajes: 84
Antigüedad: 12 años, 1 mes
Puntos: 3
Pintar registros en phpExcel

Que tal amigos del foro, les mando un gran saludo y espero me puedan ayudar en un problema:
quiero pintar unos registros en un archivo de excel, los datos los jalo de una consulta en mysql, ya pude pintarlos de manera horizontal:

Código PHP:
$result_6=mysql_query("SELECT NOMBRE FROM ml_dat_ASISTENCIA WHERE ID_GRUPO='".$nombre_gpo."' GROUP BY FECHA_ASIST ORDER BY FECHA_ASIST ASC"); 
$count6=count($result_6); 

    
$rowNumber6 1
    
$col6 'F'
    while (
$row6 mysql_fetch_row($result_6)) {  
       if(
$rowNumber6==$count6
       { 
             
$rowNumber6 1
       } 

       foreach(
$row6 as $cell6) {  
          
$objPHPExcel->getActiveSheet()->setCellValue($col6.$rowNumber6,$cell6);  
          
$col6++;  
       }  
         
    } 
Ej:
----A----------B-----------C-------D-----------E------------F-------
RAFAEL | LETICIA | MARÍA | JOSÉ | LEONARDO | MARIANA

Lo que quisiera hacer es que le indique que al llegar a 2 registros me cambie de fila:

Ej:
----A---------B-----
RAFAEL | LETICIA
MARÍA | JOSÉ
LEONARDO | MARIANA

¿Alguna idea? Les agradezco mucho.
  #2 (permalink)  
Antiguo 10/07/2013, 15:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Pintar registros en phpExcel

Usa otro contador, cada que llegue a 2, subes el contador de la fila y lo reseteas a 0, así te puedes mover de esa manera de forma sencilla.

Saludos.
  #3 (permalink)  
Antiguo 10/07/2013, 15:36
 
Fecha de Ingreso: marzo-2012
Mensajes: 84
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Pintar registros en phpExcel

Ya logré que se acomodaran y le indiqué que se detuviera en la letra "H" y regresara a la "F" en la siguiente fila:

Código PHP:
$result_6=mysql_query("SELECT NOMBRE FROM ml_dat_ASISTENCIA WHERE ID_GRUPO='".$nombre_gpo."' GROUP BY FECHA_ASIST ORDER BY FECHA_ASIST ASC");  
$count6=count($result_6);  

    
$rowNumber6 1;  
    
$col6 'F';  
    while (
$row6 mysql_fetch_row($result_6)) {   
       if(
$col6 =="H")  
       {  
             
$col6 'F';  
             
$rowNumber6++;

       }  

       foreach(
$row6 as $cell6) {   
          
$objPHPExcel->getActiveSheet()->setCellValue($col6.$rowNumber6,$cell6);   
          
$col6++;   
       }   
          
    } 
Lo logré de forma manual, sin embargo en todos los casos puede variar según el número de actividades que tenga, ¿cómo le podría indicar al sistema que dependiendo el número de actividades me recorra las columnas? Por ejemplo si quiero que los datos empiecen a pintarse a partir de la columna "F" y tengo 5 actividades, entonces que indique que a partir de la "J" se regrese o si tengo 9 actividades a partir de la "N".

Gracias
  #4 (permalink)  
Antiguo 10/07/2013, 15:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Pintar registros en phpExcel

Recuerda que un carácter es en si un número por lo que puedes incrementarlo y decrementarlo, por ejemplo:
Código PHP:
Ver original
  1. $char = 'H';
  2. $char++;
  3. echo $char;

Con eso te puedes mover de forma sencilla, ahora para contar el número tienes que definirlo de alguna manera para que el sistema sepa la cantidad de actvididades que tienes.
  #5 (permalink)  
Antiguo 10/07/2013, 16:45
 
Fecha de Ingreso: marzo-2012
Mensajes: 84
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Pintar registros en phpExcel

Muchas gracias GatorV, con tu ayuda pude solucionar mi problema, les comparto todo el código original, ya que los anteriores eran para darme una idea:

Código PHP:
$result_6=mysql_query("SELECT ml_dat_CALIF.PERIODO FROM ml_dat_CALIF INNER JOIN ml_dat_ALUMNO ON ml_dat_ALUMNO.ID_ALUMNO=ml_dat_CALIF.ID_ALUMNO INNER JOIN ml_dat_ACTIVIDAD ON ml_dat_ACTIVIDAD.ID_ACTIVIDAD=ml_dat_CALIF.ID_ACTIVIDAD WHERE ml_dat_CALIF.ID_GRUPO='".$nombre_gpo."' GROUP BY ml_dat_CALIF.PERIODO ORDER BY ml_dat_CALIF.PERIODO ASC");
$count6=mysql_num_rows($result_6);

$result_2=mysql_query("SELECT ml_dat_CALIF.CALIFICACIONES FROM ml_dat_CALIF INNER JOIN ml_dat_ALUMNO ON ml_dat_ALUMNO.ID_ALUMNO=ml_dat_CALIF.ID_ALUMNO INNER JOIN ml_dat_ACTIVIDAD ON ml_dat_ACTIVIDAD.ID_ACTIVIDAD=ml_dat_CALIF.ID_ACTIVIDAD WHERE ml_dat_CALIF.ID_GRUPO='".$nombre_gpo."' ORDER BY ml_dat_ALUMNO.AP_PATERNO ASC, ml_dat_ALUMNO.AP_MATERNO ASC, ml_dat_ALUMNO.NOMBRE ASC, ml_dat_CALIF.PERIODO ASC");
$count2=mysql_num_rows($result_2);

$rowNumber2 1;
    
$col2 'E';
    
        for (
$n=0$n<$count6$n++) {
            
$var=++$col2"\n";
        }
    
            
$col_f=substr($var,0,-1); 
    
    while (
$row2 mysql_fetch_row($result_2)) {
        
       if(
$col2==$col_f)
       {
             
$col2 "E";
             
$rowNumber2++;
             
       }

       foreach(
$row2 as $cell2) { 
          
$objPHPExcel->getActiveSheet()->setCellValue($col2.$rowNumber2,$cell2); 
          
$col2++;
       }
        
    } 
Saludos

Etiquetas: mysql, 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 16:55.