2017-01-16 1 views
0

Теперь я хочу установить цвет текста для ячейки в phpexcel в цикл foreach. Цикл в цикле, это что-то вроде:Как установить цвет для ячейки phpexcel в цикле foreach

$redBold = array(
      "font" => array(
       "bold" => true, 
       "color" => array("rgb" => "FF0000"), 
      ), 
     ); 
$row = 5; 
$count = 0 
foreach ($data as $key => $value) { 
    $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($count++, $row, $value['type']?$value['type']:0); 
    if ($value['type'] == 1) { 
     $objPHPExcel->getActiveSheet()->getStyle($count . $row)->applyFromArray($redBold); 
    } 
} 

этот код не понять, потому что getStyle($count . $row)$count . $row должен быть A6 ... Есть ли способ, чтобы установить текст в этом случае? Пожалуйста помоги!

ответ

2

Что вы получаете, когда присоединяетесь $count . $row?

getStyle() ожидает либо ссылки на ячейку (например, A1, C3, IV256) или диапазон ячеек (например A1:C3, B2:D4, A2:IV256 и т.д.

Вы просто конкатенации два числа, например 0 и 5 дать 05 который не имеет смысла в отношении ссылок на ячейки/диапазонов

Вам необходимо преобразовать $count (который вы используете в качестве индекса столбца, до фактического адреса столбца до конкатенации

$objPHPExcel->getActiveSheet()->getStyle(PHPExcel_Cell::stringFromColumnIndex($count) . $row)->applyFromArray($redBold); 

Заметим также, что вы приращением столбец с помощью оператора постинкремента перед тем пытается установить стиль для ячейки, так что, вероятно, не будет давать вам ссылку на ячейку, которую вы хотите

+0

Я знаю '$ count. $ row' не совсем, но я не знаю, как решить эту проблему. Как установить точное значение для 'getStyle()'? Я хочу установить '0'' '' '' '' '' '' 'в столбец phpexcel. –

+0

Вы можете получить адрес столбца, используя 'PHPExcel_Cell :: stringFromColumnIndex()', как показано в моем ответе –

+0

Хорошая работа! Работает. –

Смежные вопросы