Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2015, 09:37
Avatar de Jlopez2014
Jlopez2014
 
Fecha de Ingreso: julio-2014
Ubicación: Barranquilla
Mensajes: 154
Antigüedad: 10 años, 4 meses
Puntos: 0
Pregunta condicionar cellColor de PHPExcel

Hola a todos, estoy trabajando en la exportación de datos con php de mi BD a Excel, y no tengo problema en ello, más deseo en etre los datos exportados aparezca en el documento descargado unas celdas de color dependiendo de su valor (en este caso si el campo "festivo" de la tabla "entrada" vale "Si"). He intendo condicionarlo de distintas formas pero me arroja error de sintaxis y cosas así; lo que he conseguido es colorear dicha celda donde aparece el dato del campo pero indistintamente a que valor hay ahí... Pido por favor su ayuda pues poco he encontrado en la web y es solo saber condicionar esta parte, no crear un código nuevo de más de 600 líneas para mi porque sí. este es mi código que no se condicionar y gracias de antemano...

Código PHP:
Ver original
  1. <?php
  2.     include("seguridad.php");
  3.     include("conexion.php");
  4.    
  5.    
  6. $proyecto=$_GET['proyecto'];
  7. $nombre=$_GET['nombre'];
  8.  
  9. $sql= "SELECT personal.cedula, personal.nombre
  10. FROM personal, entrada
  11. WHERE personal.estado = 'Activo'
  12. AND personal.cedula = entrada.empleado
  13. AND entrada.proyecto = '".$proyecto."'
  14. AND  entrada.fecha BETWEEN '2015-03-14' AND '2015-03-30'
  15. GROUP BY personal.cedula
  16. ORDER BY personal.nombre ASC";
  17. $cs=mysql_query($sql,$cn);
  18.  
  19.   $i = 2; $k=1; $q=3;
  20. //while($resul=mysql_fetch_array($cs)){
  21.    require_once 'Classes/PHPExcel.php';
  22.    $objPHPExcel = new PHPExcel();
  23.    
  24.     function cellColor($cells,$color){
  25.         global $objPHPExcel;
  26.         $objPHPExcel->getActiveSheet()->getStyle($cells)->getFill('')
  27.         ->applyFromArray(array('type' => PHPExcel_Style_Fill::FILL_SOLID,
  28.         'startcolor' => array('rgb' => $color)
  29.         ));
  30.     }
  31.  
  32.      
  33.    
  34.    
  35.    //Informacion del excel
  36.    $objPHPExcel->
  37.     getProperties()
  38.         ->setCreator("XXX")
  39.         ->setLastModifiedBy("XXX")
  40.         ->setTitle("XXX")
  41.         ->setSubject("XXX")
  42.         ->setDescription("XXX")
  43.         ->setKeywords("XXX")
  44.         ->setCategory("XXX");
  45.  
  46. while($resul=mysql_fetch_object($cs)){
  47. //$j = '0';
  48. //$var=$resul[$j];
  49. $var=$resul->cedula;
  50. $var1=$resul->nombre;
  51. $sql2= "select  entrada.fecha, entrada.horario, entrada.salida, entrada.proyecto, entrada.festivo
  52. from entrada
  53. WHERE ".$var." = entrada.empleado
  54. AND entrada.proyecto = '".$proyecto."'
  55. AND  entrada.fecha BETWEEN '2015-03-14' AND '2015-03-30'
  56. ORDER BY entrada.fecha ASC";
  57. $cs2=mysql_query($sql2,$cn);
  58.  
  59. //$registros = mysql_num_rows ($cs2);
  60.    
  61.  //$registro = mysql_fetch_object ($cs2);
  62.  $l='B'; $h='B'; $n='C'; $m=1; $p= 'B';  
  63.  
  64.    $objPHPExcel->setActiveSheetIndex(0)
  65.      ->setCellValue('A'.$k, $var)
  66.      ->setCellValue('B'.$k, $var1);
  67.    while ($registro = mysql_fetch_object ($cs2)) {
  68.            
  69.            
  70.         $h2= $h++; $n2= $n++; $l2= $l++; $p2= $p++;
  71.        $objPHPExcel->setActiveSheetIndex(0)
  72.      
  73.             ->setCellValue($l.$k, $registro->fecha)
  74.             ->setCellValue($h.$i, $registro->horario)
  75.             ->setCellValue($n.$i, $registro->salida)
  76.             ->setCellValue($p.$q, $registro->proyecto)
  77.             ->setCellValue($n.$k, $registro->festivo);
  78.            
  79.            
  80.            
  81.            
  82.            
  83.               cellColor($n.$k, '3A74E9');
  84.  
  85.       $h++; $h2++; $n++; $n2++; $p++; $p2++; $l++; $l2++;
  86.        
  87.    }   $m++;  
  88.  
  89. $j++; $k=$k+4; $i=$i+4; $q=$q+4;
  90. }
  91.  
  92.  
  93.  
  94. header('Content-Type: application/vnd.ms-excel');
  95. header('Content-Disposition: attachment;filename="informeMIP.xls"');
  96. header('Cache-Control: max-age=0');
  97.  
  98. $objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
  99. $objWriter->save('php://output');
  100.  
  101.  
  102. ?>

Última edición por Jlopez2014; 26/03/2015 a las 09:39 Razón: datos explícitos de compañía o empresa