Foros del Web » Programando para Internet » PHP »

PHP OO PHPExcel cambiar color de celdas

Estas en el tema de PHPExcel cambiar color de celdas en el foro de PHP en Foros del Web. Hola que tal, últimamente migre a utilizar la librería de PHPExcel, ya puedo manipular la extracción de datos de MYSQL hacer filtros y friziar filas... ...
  #1 (permalink)  
Antiguo 30/10/2013, 11:09
 
Fecha de Ingreso: octubre-2013
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
Exclamación PHPExcel cambiar color de celdas

Hola que tal, últimamente migre a utilizar la librería de PHPExcel, ya puedo manipular la extracción de datos de MYSQL hacer filtros y friziar filas... pero me encontré con un problema:

Cabe mencionar que estuve buscando en todas partes sin encontrar algo relacionado con lo que quiero;

Se dar color a las celdas... pero mi problema es que solo quiero que cambien de color las celdas que se encuentren vacias o null al exportar los datos al excel.

Como puedo hacer eso??

Este es mi código con el que cuento para cambiar de color las celdas hasta el momento:

Código PHP:
 function cellColor($cells,$color){
        global 
$objPHPExcel;
        
$objPHPExcel->getActiveSheet()->getStyle($cells)->getFill('')
        ->
applyFromArray(array('type' => PHPExcel_Style_Fill::FILL_SOLID,
        
'startcolor' => array('rgb' => $color)
        ));
    }

      
cellColor('A2:AB146''F28A8C'); 
o que otra solución tendría?
  #2 (permalink)  
Antiguo 30/10/2013, 13:54
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: PHPExcel cambiar color de celdas

Mira esto
http://stackoverflow.com/questions/7...ring-the-cells
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #3 (permalink)  
Antiguo 30/10/2013, 16:18
 
Fecha de Ingreso: octubre-2013
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: PHPExcel cambiar color de celdas

Cita:
Iniciado por SkAr88 Ver Mensaje
Mira esto
[url]http://stackoverflow.com/questions/7164787/phpexcel-coloring-the-cells[/url]
Gracias por contestar, ya intente implementarlo pero me marca error no se si me podrías ayudar este es mi código completo:

Código PHP:
<?php
 
/* Ejemplo 1 generando excel desde mysql con PHP
    @Autor: Carlos Hernan Aguilar Hurtado
 */
  
 
 
$conexion mysql_connect ("localhost""root""sa123");
 
mysql_select_db ("view_am_as_se"$conexion);    
 
$sql "SELECT * FROM get_tabla ";
 
mysql_set_charset('utf8'$conexion);
 
$resultado mysql_query ($sql$conexion) or die (mysql_error ());
 
$registros mysql_num_rows ($resultado);
  
 if (
$registros 0) {
   require_once 
'Classes/PHPExcel.php';
   
$objPHPExcel = new PHPExcel();
    
   
//Informacion del excel
   
$objPHPExcel->
    
getProperties()
        ->
setCreator("ingenieroweb.com.co")
        ->
setLastModifiedBy("ingenieroweb.com.co")
        ->
setTitle("Exportar excel desde mysql")
        ->
setSubject("Ejemplo 1")
        ->
setDescription("Documento generado con PHPExcel")
        ->
setKeywords("ingenieroweb.com.co  con  phpexcel")
        ->
setCategory("CIs");    
 
     
$tituloReporte "ID";
     
$tituloReporte1 "Name";
     
$tituloReporte2 "Brief Description";    
     
$tituloReporte3 "Nature";    
     
$tituloReporte4 "Model";    
     
$tituloReporte5 "Serial No.";    


         







        
$objPHPExcel->setActiveSheetIndex(0)
                    ->
setCellValue('A1',$tituloReporte)->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension())
                    ->
setCellValue('B1',  $tituloReporte1)->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()) 
                    ->
setCellValue('C1',  $tituloReporte2)->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()) 
                    ->
setCellValue('D1',  $tituloReporte3)->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()) 
                    ->
setCellValue('E1',  $tituloReporte4)->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()) 
                    ->
setCellValue('F1',  $tituloReporte5)->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()) 
                    ->
setCellValue('G1',  $tituloReporte6)->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()) 
                        
                    ;

    
    
                        
   
$i 2;    
   while (
$registro mysql_fetch_object ($resultado)) {
        
      
$objPHPExcel->setActiveSheetIndex(0)
      
            ->
setCellValue('A'.$i$registro->asset_id)
             ->
setCellValue('B'.$i$registro->name)
             ->
setCellValue('C'.$i$registro->brief_desc)
             ->
setCellValue('D'.$i$registro->nature)
             ->
setCellValue('E'.$i$registro->model)
             ->
setCellValue('F'.$i$registro->serial_no)
            
             ;
  
      
$i++;
       
   }
   
   function 
cellColor($cells,$color){
        global 
$objPHPExcel;
        
$objPHPExcel->getActiveSheet()->getStyle($cells)->getFill('')
        ->
applyFromArray(array('type' => PHPExcel_Style_Fill::FILL_SOLID,
        
'startcolor' => array('rgb' => $color)
        ));
    }

      
cellColor('A1''F28A8C');

   
//Nuevo Codigo 
      
$registro = ($registro 1) % 2;

            if(
$registro == 1)
            {
                
$style_header = array(                  
                
'fill' => array(
                    
'type' => PHPExcel_Style_Fill::FILL_SOLID,
                    
'color' => array('rgb'=>'CCC'),
                ),
                
'font' => array(
                    
'bold' => true,
                )
                );
                
$sheet->getStyle($row)->applyFromArray$style_header );

            }

            
$sheet->getCellByColumnAndRow(0$row)->setValue($item['qty']);
            
$sheet->getCellByColumnAndRow(1$row)->setValueExplicit($item['name']);
            
$sheet->getCellByColumnAndRow(2$row)->setValueExplicit($item['size']);
            
$sheet->getCellByColumnAndRow(3$row)->setValueExplicit($item['color']);
    
        
$objPHPExcel->getActiveSheet()->setTitle('Prueba');

        
// Se activa la hoja para que sea la que se muestre cuando el archivo se abre
        
$objPHPExcel->setActiveSheetIndex(0);
        
// Inmovilizar paneles 
        //$objPHPExcel->getActiveSheet(0)->freezePane('A4');
        
$objPHPExcel->getActiveSheet(0)->freezePaneByColumnAndRow(0,2);
    

   
}




header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="ejemplo1.xlsx"');
header('Cache-Control: max-age=0');
 
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWriter->save('php://output');
exit;
mysql_close ();
?>

Etiquetas: celdas, color, excel, null, 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 19:58.