У меня есть код, который читает из файла 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));
}}}
Спасибо за любой совет или решение.