setSharedStyleByColumnAndRow Solved

Topics: User Forum
Dec 26, 2012 at 4:43 AM
Edited Dec 26, 2012 at 4:51 AM

Editas el archivo PHPExel/Worksheet.php

agregas el siguiente codigo

public function setSharedStyleByColumnAndRow(PHPExcel_Style $pSharedCellStyle = null, $pColumn1 = 0, $pRow1 = 0, $pColumn2 = 0, $pRow2 = 0)
    {

     // Translate column into index
     $rangeStart[0] = $pColumn1;
     $rangeEnd[0] = $pColumn2;

     $rangeStart[1] = $pRow1;
     $rangeEnd[1] = $pRow2;

     // Make sure we can loop upwards on rows and columns
     if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) {
      $tmp = $rangeStart;
      $rangeStart = $rangeEnd;
      $rangeEnd = $tmp;
     }

     // Loop trough cells and apply styles
     for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) {
      for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) {
       $this->getCell(PHPExcel_Cell::stringFromColumnIndex($col) . $row);
       $this->_styles[ PHPExcel_Cell::stringFromColumnIndex($col) . $row ] = $pSharedCellStyle;
      }
     }
    }

Ya cuando quieras darle estilo a un rango de celdas seria:

$objPHPExcel->getActiveSheet()->setSharedStyleByColumnAndRow($estilo, $col0,$ren0,$col1,$ren1);

A1 = 0,1

B10=1,10

$objPHPExcel->getActiveSheet()->setSharedStyleByColumnAndRow($estilo, 0,1,1,10);

saludos..