Как читать цвета из ячеек с помощью php excel и сделать действие цвета действительным - PullRequest
0 голосов
/ 30 октября 2019

У меня есть код, который читает из файла Excel (xls, xlsx - не имеет значения) У меня есть функция, которая действительно читает из xls (включая объединенные ячейки) и что-то делает со значением ячейки:

function myfunction($xls){
    include_once '../system/PHPExcel/Classes/PHPExcel/IOFactory.php';
    $objPHPExcel = PHPExcel_IOFactory::load($xls);
    $i = 0;
    $array = array();
    while ($objPHPExcel->setActiveSheetIndex($i)){
    $aSheet = $objPHPExcel->getActiveSheet();
    $sheetNames = $objPHPExcel->getSheetNames();
    $index = $objPHPExcel->getWorksheetIterator();

    foreach($aSheet->getRowIterator() as $row){
      $cellIterator = $row->getCellIterator();
      $item = array();
 foreach ($cellIterator as $key => $cell){ 

    foreach ($aSheet->getMergeCells() as $cells) {
    if ($cell->isInRange($cells)) {
    $currMergedCellsArray = PHPExcel_Cell::splitRange($cells);
    $cell = $aSheet->getCell($currMergedCellsArray[0][0]);
        break;
    }
}
if ($key != 'B' && $key != 'C' && $key != 'D') continue;
        array_push($item, $cell->getCalculatedValue());
      }
      array_push($array, $item);
    }
if($i < $objPHPExcel->getSheetCount()-1 ) $i++; else break;
    }
return $array;
  } 

Как правильно объединить его со следующим, который должен считывать цвет из каждой ячейки, и, если цвет будет, например, зеленым - что-то делать со значением в ячейке?

    foreach($worksheetsCollection as $oWorksheet) /** @var \PHPExcel_Worksheet $oWorksheet */ {
        $rows = $oWorksheet->toArray();
        unset($rows[0]);
        if (!empty($rows)) {

            foreach ($rows as $key => $row) {
                $color = $oWorksheet->getStyle('C' . ($key + 1))->getFill()->getStartColor()->getRGB();
if ($color == "FFFFFF"){ echo 'valid';
        } else {echo $color.'<br>';}
                var_dump($color, 'C' . ($key + 1));
}}}

Спасибо за любой совет или решение.

...